首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue 3组合API,使用valueAsDate属性设置日期输入

Vue 3组合API,使用valueAsDate属性设置日期输入
EN

Stack Overflow用户
提问于 2021-03-28 17:08:34
回答 1查看 1.2K关注 0票数 0

我的页面上有一个日期选择器,我用今天的日期初始化它。在移植到Vue之前,我使用了:

代码语言:javascript
运行
复制
document.getElementById("entryDate").valueAsDate = new Date()

提供

但这在Vue对我不起作用。显然,我需要访问元素本身才能获得valueAsDate属性,所以我需要:

代码语言:javascript
运行
复制
const entryDate = ref(null)
const entryDateElem = ref(null)

onMounted(() => {
  entryDateElem.value.valueAsDate = new Date()
})

在我的模板里:

代码语言:javascript
运行
复制
<input type="date" ref="entryDateElem" v-model="entryDate"></input>

但是日期选择器值不变。如果我在相同的堆栈溢出帖子中使用替代答案(直接设置值),它就会像预期的那样工作。

代码语言:javascript
运行
复制
onMounted(() => {
  entryDate.value = new Date().toISOString().substr(0, 10)
})

但是为什么valueAsDate不能工作呢?我已经检查过entryDateElem.value是否引用了相关的元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-28 17:21:19

在vue中,不建议使用vanilla JS操作DOM,因为Vue是数据驱动的框架,这意味着输入应该绑定到数据属性,并且它是根据该数据进行更改的,而不是将原始数据分配给它的属性如下:

代码语言:javascript
运行
复制
entryDateElem.value.valueAsDate = new Date() // you're manipulating directly the DOM ❌

正确的方法:

代码语言:javascript
运行
复制
entryDate.value = new Date() // you're manipulating the data ✔
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66844015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档