vue自定义组件实现双向绑定方式

 更新时间:2025年04月24日 09:40:54   作者:six+seven  
这篇文章主要介绍了vue自定义组件实现双向绑定方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue自定义组件实现双向绑定

在项目开发中需要实现一个自定义组件,一个输入框,可以在输入框中输入值检索出值,也可以打开弹窗去选择。

效果如下图

目标

希望该组件可以通过v-model绑定变量,并实现双向绑定

实现

 //父组件
<LazyBasedataModalTree
          v-model="assitone"
          title="弹窗标题"
          :tableName="tableName"
   ></LazyBasedataModalTree>

data(){
   return{
           assitone:""
        }
}

//子组件
<template>
  <div class="loader">
     <input v-model="text" @on-change="handleChange"></input>
   </div>
</template>

<script>

export default {
  name: "lazyBasedataModalTree",
  model:{
    event:'update'
  },
  data(){
     return{
         assitone:""
     }
  },
  methods: {
    handleChange(){
        this.$emit('update', this.text)
     }
  },
};
</script>

<style scoped>

</style>

以上代码即可实现双向数据绑定,上述子组件的代码只是提供示例,具体代码需要根据需求去实现。

原理

实际v-model是由v-bind和on-change事件共同实现的,如下:

<LazyBasedataModalTree
          v-bind="assitone"
          @on-change="(val) => assitone = val"
          title="弹窗标题"
          :tableName="tableName"
   ></LazyBasedataModalTree>
//或者
<LazyBasedataModalTree
          :value="assitone"
          @on-change="(val) => assitone = val"
          title="弹窗标题"
          :tableName="tableName"
   ></LazyBasedataModalTree>

因此开发自定义组件,可以自己实现on-change这一步,具体触发事件,可以通过model属性里面的event进行设置。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue.js实现简单ToDoList 前期准备(一)

    Vue.js实现简单ToDoList 前期准备(一)

    这篇文章主要介绍了Vue.js实现简单ToDoList的前期准备,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • vue 更改连接后台的api示例

    vue 更改连接后台的api示例

    今天小编就为大家分享一篇vue 更改连接后台的api示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue实现tab切换的放大镜效果

    vue实现tab切换的放大镜效果

    这篇文章主要为大家详细介绍了vue实现tab切换的放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Vue之ElementUI Form表单校验

    Vue之ElementUI Form表单校验

    这篇文章主要为大家详细介绍了Vue之ElementUI Form表单校验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 一文搞懂Vue中watch侦听器的用法

    一文搞懂Vue中watch侦听器的用法

    在Vue.js中,您可以使用watch选项来创建侦听器,以侦听特定属性的变化,侦听器可以在属性发生变化时执行相关的逻辑,本文给大家详细讲讲Vue中watch侦听器的用法,需要的朋友可以参考下
    2023-11-11
  • vue项目中常见问题及解决方案(推荐)

    vue项目中常见问题及解决方案(推荐)

    这篇文章主要介绍了vue项目中常见问题及解决方案,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Vue中使用方法、计算属性或观察者的方法实例详解

    Vue中使用方法、计算属性或观察者的方法实例详解

    这篇文章主要介绍了Vue中如何使用方法、计算属性或观察者的相关知识,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10
  • 详解vue项目接入微信JSSDK的坑

    详解vue项目接入微信JSSDK的坑

    这篇文章主要介绍了详解vue项目接入微信JSSDK的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 如何使用vue开发公众号网页

    如何使用vue开发公众号网页

    因为项目需要,近期做了一个公众号网页开发。在此期间也踩了一些坑,解决这些坑之后,准备对这个项目进行复盘。记录下项目从开发到上线所解决的问题,并对使用vue进行公众号开发的步骤进行一个总结。方便以后有问题进行查阅。希望对你有所帮助
    2021-05-05
  • 开发一个Parcel-vue脚手架工具(详细步骤)

    开发一个Parcel-vue脚手架工具(详细步骤)

    这篇文章主要介绍了开发一个Parcel-vue脚手架工具(详细步骤),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论