Demo演示地址: https://beat-the-buzzer.github.io/my-demos/#/index/my-decorator-02
Vue的修饰符为我们解决了很多通用的问题,如果我们了解这些修饰符,就能在开发的过程中节约大量的时间。
我们都知道使用v-on
或者@
在Vue中绑定事件,关于事件的修饰符,其实也是十分实用的。如果我们不了解这些修饰符,就会自己去写一些原生的实现方式,实际上Vue已经在内部有实现了。
下篇主要是总结一下的修饰符,都是Vue官方文档上面的。
v-bind相关修饰符
.prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定。
1 | <!-- 绑定一个全是 attribute 的对象 --> |
.camel - (2.1.0+) 将 kebab-case 特性名转换为 camelCase. (从 2.1.0 开始支持)
下面的例子中,第二种写法是没有效果的,第三种方法可以正常展示。
1 | <svg style="width:50px; height:50px" :viewBox="viewBox"> |
.sync (2.3.0+) 语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器
这种情况下暂时不举例说明了。
v-model相关修饰符
.lazy - 取代 input 监听 change 事件
1 | <!-- 在“change”时而非“input”时更新 --> |
.number - 输入字符串转为有效的数字
如果这个值无法被 parseFloat() 解析,则会返回原始的值。
1 | <input v-model.number="age" type="number"> |
.trim - 输入首尾空格过滤
1 | <input v-model="name0" type="text" placeholder="请输入姓名"> |
小结: 或许以上的总结在实际项目中可能用不到,或者我们习惯了使用原生的解决方法,例如手动阻止默认事件,但是我们的目的不仅仅只是为了了解这个知识,更多的是通过了解这些用法,来重新温习一下JS的基础,在后面,还需要去阅读源码,了解这些装饰器在底层是如何实现的,这样才能真正走上进阶之路。