当前位置: 首页 > 编程笔记 >

详解vue 自定义组件使用v-model 及探究其中原理

范彭亮
2023-03-14
本文向大家介绍详解vue 自定义组件使用v-model 及探究其中原理,包括了详解vue 自定义组件使用v-model 及探究其中原理的使用技巧和注意事项,需要的朋友参考一下

1、首先我们来实现自定义组件中使用v-model

父组件中注册子组件

<template>
 <div id="app">
  <p>{{name}}</p>
  <MyInput v-model="name"/>
 </div>
</template>

<script>
import MyInput from './components/MyInput.vue'
export default {
 name: 'app',
 data(){
  return {
   name: 132
  }
 },
 components: {
  MyInput
 },
}
</script>

子组件接收父组件传值

<template>
  <div>
    <input type="text" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" />
  </div>
</template>
<script>
export default {
 name: "MyInput",
 props: {
  value: ""
 },
};
</script>

2.探究v-model

在input中的v-model功能是实现数据的双向绑定,即绑定name值及改变值。

工作等同于以下代码:

<input type="text" v-bind:value="name" v-on:input="event=>name=event.target.value" />

v-bind将name的值绑定到value

v-on绑定input事件,当事件触发时将事件目标值赋值给name

而在自定义标签中的v-model与在input中的功能一致,但绑定的事件有些许不同,如下:

<MyInput type="text" v-bind:value="value" v-on:input="value=>name=value" />

在子组件中使用$emit触发MyInput中的input事件,此时$emit并不能传input的event的事件,而是直接传目标值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍详解VUE自定义组件中用.sync修饰符与v-model的区别,包括了详解VUE自定义组件中用.sync修饰符与v-model的区别的使用技巧和注意事项,需要的朋友参考一下 .sync修饰组件 v-model修饰组件 区别只能自己慢慢体会,个人感觉 .sync用法灵活,而v-model只能接受prop名为为value的值. 两者都需要手动触发$emit方法. 以上就是本文的全部内容,

  • 本文向大家介绍详解vue v-model,包括了详解vue v-model的使用技巧和注意事项,需要的朋友参考一下 1. v-model原理 vue中v-model是一个语法糖,所谓的语法糖就是对其他基础功能的二次封装而产生的功能。简单点说,v-model本身就是父组件对子组件状态以及状态改变事件的封装。其实现原理上分为两个部分: 通过props设置子组件的状态 通过监听子组件发出的事件改变父组件

  • 本文向大家介绍vue在自定义组件中使用v-model进行数据绑定的方法,包括了vue在自定义组件中使用v-model进行数据绑定的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了vue v-model进行数据绑定,分享给大家,具体如下 官方例子https://vuefe.cn/v2/api/#model 有这么一句话: 默认情况下,一个组件上的 v-model 会把 value 用作 pr

  • 本文向大家介绍利用Vue v-model实现一个自定义的表单组件,包括了利用Vue v-model实现一个自定义的表单组件的使用技巧和注意事项,需要的朋友参考一下 功能描述: 通过点击按钮,可以增减购物数量 组件名称是 CouterBtn 最终效果如下 我们使用 vue-cli搭建基本的开发环境,这也是最快的进行 .vue组件开发的方式 对于入口组件  App.vue (可以暂时忽略其他细节,我们

  • 本文向大家介绍vue项目中v-model父子组件通信的实现详解,包括了vue项目中v-model父子组件通信的实现详解的使用技巧和注意事项,需要的朋友参考一下 前言 我们在vue项目中,经常有这样的需求,父组件绑定v-model,子组件输入更改父组件v-model绑定的数值。很多朋友对这种操作不是很清楚,这需要对v-model有比较深入的了解,今天谈谈v-model。 vue的双向数据绑定 v-m

  • 支持和小程序的原生自定义组件混用,使用方式和原生的使用方式没有区别。在引用时在页面 js 入口配置 config.usingComponents。 export default { config: { usingComponents: { comp: 'path/to/components/comp/index' } } } 另外还需要在 webpack 中配