v-model 的使用
v-model 的使用
vue2.x 中 v-model
1 | <ChildComponent v-model = "title /> |
也就是传递一个属性 value,然后接收一个 input 事件。
问题: 那就是传递下去的必须是 value 值,接收的也必须是 input 事件
解决: Vue2.2 中,引入了 model 组件选项,也即是说你可以通过 model 来指定 v-model 绑定的值和属性
1 | <ChildComponent v-model="title" /> |
子组件这样设置的:
1 | export default { |
vue3.x 中 v-model
vue3 中就实现了可以直接使用另外的属性和方法,而不需要去通过 model 进行定义功能
v-model 绑定的不再是 value,而是 modelValue,接收的方法也不再是 input,而是 update:modelValue。使用方法如下:
1 | <!-- 简写 --> |
1 | export default defineComponent({ |
也就是说 vue3 中,value 改成了 modelValue,input 方法了改成 update:modelValue。
更换 v-model 的参数
vue3 中使用了 modelValue 来替代 value,但是 modelValue 不太具备可读性,在子组件的 props 中看到这个都不知道是什么
1 | <ChildComponent v-model:title="title" /> |
1 | export default defineComponent({ |
思考
v-model 是双向绑定吗?
v-model 是单向数据流吗?
什么是单项数据流?
父组件可以向值组件传递数据,并且改变值组件的值,而子组件不能改变父组件传递给它的 prop 属性,官方推荐的做法是它抛出事件,通知父组件自行改变绑定的值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 许小墨のBlog!
评论
WalineDisqus