Vue v-bind修饰符.prop property 与 attribute 的差别

博客介绍了HTML属性与DOM属性的区别,指出HTML属性值指定初始值,DOM属性值是当前值。还提到自定义属性默认情况及HTML标准属性添加后的情况,最后博主感慨花时间研究此内容似乎用处不大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

property 与 attribute

声明:前面没有带入Vue描述,Vue在后面带入

在浏览器解析 DOM 树渲染页面后,每个标签都会生成一个对应的 DOM 节点。节点是一个对象,所以会包含一些 properties,attributes 也是其中一个property

–在一个国外论坛上找到的,希望能够方便理解–
HTML attribute vs. DOM property
  HTML 属性与 DOM 属性
The HTML attribute value specifies the initial value; the DOM value property is the current value.
 HTML 属性值指定初始值; DOM 属性值是当前值

区别

说明attributesproperty
访问方式document.getElementById(‘id’).attributes.*document.getElementById(‘id’).*
可访问的属性包含标签里定义的所有属性只包含 HTML 标准的属性,不包含自定义属性

.prop

使用 v-bind前:

--html--
<input  id="b" value="aaa" dd="www" >	<!--value在input中并非自定义属性-->
<组件	id="c"	value="ccc" ></组件>	<!--value是 自定义属性-->
--控制台--
document.getElementById("b").attributes.value		=> 	value="aaa"
document.getElementById("b").value					=>	"aaa"

document.getElementById("b").attributes.dd			=>	dd="www"
document.getElementById("b").dd						=>	undefined

document.getElementById("c").attributes.value		=>	value="ccc"
document.getElementById("c").value					=>	undefined

//此时在 input中删除"aaa",输入"abc"

document.getElementById("b").attributes.value		=> 	value="aaa"
document.getElementById("b").value					=>	"abc"

使用 v-bind后:
算了,不描述多余话了,我相信已经你学过了
总而言之都是一个意思

默认 自定义属性不会出现在property中,可以通过.prop添加到property,不过原来的attributes会被删除
记住!HTML标准的属性存在propertyattributes之中,若加上了v-bindattributes会被删除,也就是加上v-bind的HTML标准的属性,是默认带有.prop的,在加上.prop并不会改变什么

我刚刚不是在学 动态组件与异步组件 吗!
我为什么要花大量时间看这个!好像没啥用啊!(っ °Д °;)っ

### Vue.js 中 `v-model` 修饰符的用法 在 Vue.js 中,`v-model` 是用于创建双向数据绑定的一种指令。为了更好地控制输入的数据处理方式,Vue 提供了几种内置的修饰符来改变默认行为。 #### `.lazy` 通常情况下,`v-model` 绑定会同步更新数据,在每次用户的键盘事件触发时都会执行一次更新操作。如果希望改为在失去焦点或者回车键按下之后才进行更新,则可以使用`.lazy`修饰符[^1]: ```html <!-- 默认实时更新 --> <input v-model="message"> <!-- 失去焦点或按 Enter 键后更新 --> <input v-model.lazy="message"> ``` #### `.number` 当需要确保用户输入的是数值而不是字符串形式的时候,可以通过添加`.number`修饰符自动将输入转换成有效的浮点数;若无法解析则返回原始值: ```html <!-- 输入会被强制转为 Number 类型 --> <input v-model.number="age" type="text"> ``` #### `.trim` 对于表单字段中的空白字符去除需求,可利用`.trim`修饰符去掉用户输入首尾多余的空格: ```html <!-- 自动过滤掉前后端多余空格 --> <input v-model.trim="name"> ``` 除了上述三种常见的修饰符之外,开发者还可以自定义修饰符以满足特定场景下的业务逻辑要求。需要注意的是这些修饰符之间是可以组合使用的,比如同时应用懒加载数字转换功能: ```html <!-- 同时启用 .lazy .number --> <input v-model.lazy.number="numericValue"> ``` 通过合理运用 `v-model` 的各种修饰符可以让前端开发变得更加高效便捷,并且能够有效提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾仪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值