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进行设置。

总结

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

相关文章

  • vue3项目如何通过Nginx部署至服务器

    vue3项目如何通过Nginx部署至服务器

    这篇文章主要介绍了vue3项目通过Nginx部署至服务器的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Vue的底层原理你了解多少

    Vue的底层原理你了解多少

    这篇文章主要为大家详细介绍了Vue的底层原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 在 vue-cli v3.0 中使用 SCSS/SASS的方法

    在 vue-cli v3.0 中使用 SCSS/SASS的方法

    关于如何在 vue-cli v3.0 中使用 SCSS/SASS,这里提供三种方案。感兴趣的朋友通过本文一起学习吧
    2018-06-06
  • 14个Vue中易被攻击的代码位置小结

    14个Vue中易被攻击的代码位置小结

    在 Vue 框架中,哪些地方容易被攻击呢?写代码的时候要注意什么呢?这篇文章中小编为大家总结了一些常见的容易受到攻击的地方,希望对大家有所帮助
    2024-02-02
  • vue 组件 全局注册和局部注册的实现

    vue 组件 全局注册和局部注册的实现

    下面小编就为大家分享一篇vue 组件 全局注册和局部注册的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue 3 TypeScript 接口Interface使用示例详解

    Vue 3 TypeScript 接口Interface使用示例详解

    Vue3中TypeScript的接口用于定义组件props、数据模型、事件等类型结构,提升代码可读性与维护性,常见场景包括props类型、响应式数据、状态对象、事件类型等,本文给大家介绍Vue 3 TypeScript接口Interface使用示例,感兴趣的朋友一起看看吧
    2025-07-07
  • 利用vscode编写vue的简单配置详解

    利用vscode编写vue的简单配置详解

    这篇文章主要给大家介绍了利用vscode编写vue简单配置的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • 跟混乱的页面弹窗说再见

    跟混乱的页面弹窗说再见

    这篇文章主要介绍了跟混乱的页面弹窗说再见,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详解Vue与VueComponent的关系

    详解Vue与VueComponent的关系

    这篇文章主要为大家介绍了Vue与VueComponent的关系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • vue中使用v-for时为什么不能用index作为key

    vue中使用v-for时为什么不能用index作为key

    这篇文章主要介绍了vue中使用v-for时为什么不能用index作为key,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论