千家信息网

Vue中如何实现父子组件数据双向绑定

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关Vue中如何实现父子组件数据双向绑定,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现思路:父 向 子 组件传值:使用 props 属性
千家信息网最后更新 2026年10月31日Vue中如何实现父子组件数据双向绑定

这篇文章将为大家详细讲解有关Vue中如何实现父子组件数据双向绑定,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    实现思路:

    父 向 子 组件传值:使用 props 属性。( props 是property[属性] 的复数简写 )
    子 向 父 组件传值:使用自定义事件。

    一、父子组件单向传值

    1、父向子传值

    父向子组件传值,子组件接收到数据之后,保存到自己的变量中。

    //父组件写法   //子组件定义以及数据 components:{  cld:{   template:'#child',   props:{    numP:Number   },  } }  //子组件内容 

    props 用于接收父组件传过来的值,props 的写法有很多种,具体如:

    //方式1 :  直接接收数据 props: [ 'numP' ]  //方式2: 加类型限制 props: [  numP: Number  ]   //方式3:添加默认值 props: [  numP: {   type:Number,   default:0   } ]   //方式4:是否必须值限制 props: [  numP: {   type:Number,   default:0,   require:true //添加必须值,不传此值会报错  } ]   //方式5:采用对象形式 props: {  numP: {   type:Number,   default:0,  } }

    2、子向父传值

    子向父组件传值,主要通过自定义事件进行传值,具体实例如下:

    // 父组件内容 
    子组件获取到的数据{{getNum}}
    //父组件方法 methods:{ getNumC(data){ this.getNum = data //接收子组件传的数据 } }, //子组件定义 components:{ cld:{ template:'#child', data(){ return{ numC:1314 //子组件数据定义 } }, mounted(){ this.$emit( 'accept' , this.numC ) // 触发自定义事件 } } },

    二、父子组件数据双向绑定

    Vue 的数据都是单向流动的,而且 vue 中从来就没有任何的双向绑定,v-model 实现的双向绑定只是语法糖而已。

    方式1:利用 watch 实现父子组件的数据双向绑定,具体实例如下:

    数据
    {{num}}
    //子组件内容 const app = new Vue({ el:'#app', data:{ num:'520', }, methods:{ getNumC(data){ this.num = data } }, components:{ cld:{ template:'#child', props:{ numb:String }, data(){ return{ childNum:0, } }, watch:{ numb:function(){ this.childNum = this.numb }, childNum:function(){ this.$emit('accept',this.childNum) } }, mounted(){ this.childNum = this.numb } } } })

    方式2:.sync 修饰符实现双向绑定

    在vue 1.x 中的 .sync 修饰符所提供的功能。当一个子组件改变了一个带 .sync 的 prop 的值时,这个变化也会同步到父组件中所绑定的值。这很方便,但也会导致问题,因为它破坏了单向数据流。(数据自上而下流,事件自下而上走)

     //会扩展为: 

    当组件需要更新 numb 的值时,需要触发更新事件:

    this.$emit("update:numb", newValue );

    使用具体实例如下:

    // 父组件   //子组件 props: ['foo'], data() {   return {    newFoo: this.foo;    } }, methods:{  add:function(){   this.newMsg=10;   this.$emit('update:foo',this.newFoo);  } }

    关于"Vue中如何实现父子组件数据双向绑定"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    组件 数据 双向 方式 父子 事件 内容 单向 实例 篇文章 写法 属性 更多 更新 限制 不错 实用 个子 功能 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中资互联网科技 紫鲸互联网科技 致聘互联网科技 银优互联网科技有限公司 互联网金融科技平台 互联网科技股有哪些 互联网科技类展会 深圳市运趣互联网科技有限公司 来此购互联网科技有限公司 世界互联网科技公司市值排名 互联网科技革命什么开始 开一家科技互联网公司需要多少钱 想开互联网科技公司怎么样 互联网科技人工智能实验室 朱啸虎曾投资哪些互联网科技企业 小米互联网科技园入驻 唐山双旺合互联网科技产业园 好易买互联网科技 绵阳真晨互联网科技有限公司 伍佰万互联网科技是干嘛的 互联网科技公司经营范围 互联网科技的英文 狮子座互联网科技培训 广州恒生互联网科技有限 互联网经济与金融科技 元气玛特互联网科技公司是外包吗 上海钢联属于互联网科技股吗 宁波跨境商互联网科技有限公司 广西科技产业互联网是什么 伍佰万互联网科技是干嘛的
    0