在vue中使用v-model如何实现父子组件通信

vue.js,是一个构建数据驱动的 web 界面的库。vue.js 的目标是通过尽可能简单的 api 实现响应的数据绑定和组合的视图组件。下面这篇文章主要给大家介绍了关于vue项目中v-model父子组件通信实现的相关资料,需要的朋友可以参考下。

前言

我们在vue项目中,经常有这样的需求,父组件绑定v-model,子组件输入更改父组件v-model绑定的数值。很多朋友对这种操作不是很清楚,这需要对v-model有比较深入的了解,今天谈谈v-model。

vue的双向数据绑定

v-model这个指令只能用在, ,

立即学习“前端免费学习笔记(深入)”;

这个问题在很多前端面试中,会提及。面试官问你,vue的双向数据绑定原理是什么?当然,这个也是耳熟能详的问题,百度随便一搜索,到处都能找到答案。

一般都会搜索到,是用Object.defineProperty( ) ,来监听数据get和set,来实现数据劫持的。

假如对Object.defineProperty( )不是很了解,可以点击上面链接,看看其语法!

举个简单的例子:

var blog = { name: 'haorooms博客'};console.log(blog.name); // haorooms博客

登录后复制

如果想要在执行console.log(blog.name)的同时,直接给haorooms博客加个书名号,那要怎么处理呢?或者说要通过什么监听对象 blog的属性值。这时候Object.defineProperty( )就派上用场了,代码如下:

var blog= {}var name = '';Object.defineProperty(blog, 'name', { set: function (value) { name = value; console.log('欢迎来到' + value); }, get: function () { return '《' + name + '》' }})blog.name = 'haorooms博客'; // 欢迎来到haorooms博客console.log(blog.name); // 《haorooms博客》

登录后复制

上面代码执行一下,可以查看效果!

关于 vue的双向数据绑定,具体如何实现的?网上也有很多实现的代码,这里就不多累赘了!

v-model 的使用

上面开了一个小差,讲了那么多,其实就是为了说明Vue 是单项数据流,v-model 只是语法糖而已。


登录后复制

第一行的代码其实只是第二行的语法糖。然后第二行代码还能简写成这样:


登录后复制登录后复制登录后复制登录后复制登录后复制

也就是说,


登录后复制登录后复制登录后复制登录后复制登录后复制

也可以写成


登录后复制登录后复制登录后复制登录后复制登录后复制

v-model在组件上的使用

回到我们一开始的疑问了?vue中v-model如何进行父子组件的通信?如何在组件中使用呢?假如你理解了我上面的例子,那么,我们就可以很简单的在组件中使用v-model了。

父组件代码如下:

  

  {{haorooms}}

import testModel from 'src/components/testModel' export default { data(){ return{ haorooms: "haorooms" } }, components: { testModel, } }

登录后复制

子组件代码如下:

       export default {    data(){      return{      }    },    props: ["value"],    model: {      prop: 'value',      event: 'balabala'    }  }

登录后复制

我们可以通过上面代码,子组件修改父组件v-model绑定的值!

实现截图如下:

在vue中使用v-model如何实现父子组件通信

v-model 的缺点和解决办法

在创建类似复选框或者单选框的常见组件时,v-model就不好用了。


登录后复制登录后复制登录后复制登录后复制登录后复制

我们可以用如下方式解决:


登录后复制登录后复制登录后复制登录后复制登录后复制

父组件可以如下写:


登录后复制

子组件:

        @change="$emit('balabala', $event.target.checked)"        :checked="value"       /> export default {    data(){      return{      }    },    props: ['checked'], //这里就不用 value 了,而是 checked   model: {     prop: 'checked',     event: 'balabala'    },  }

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

使用Javascript如何实现自定义事件机制

使用Javascript如何实现自定义事件机制

使用Javascript如何实现自定义事件机制

以上就是在vue中使用v-model如何实现父子组件通信的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2749719.html

(0)
上一篇 2025年3月8日 05:04:57
下一篇 2025年3月8日 05:05:04

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用Vue如何制作自定义全局组件

    这两天学习了vue.js 感觉组件这个地方知识点挺多的,而且很重要,所以这篇文章主要给大家介绍了关于vue中自定义全局组件的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面随着小编来…

    编程技术 2025年3月8日
    200
  • 有关Vue配置指南(详细教程)

    vux是vue.js的一个ui库,官网在这里,官方文档的配置指南侧重于技术的罗列,我这里简化一下vux的配置流程。感兴趣的朋友跟随脚本之家小编一起学习吧 简介 Vux(读音 [v’ju:z],同views)是基于WeUI和Vue…

    编程技术 2025年3月8日
    200
  • 在vue中如何实现axios二次封装

    本篇文章主要介绍了vue axios 二次封装的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 这段时间告诉项目需要,用到了vue。 刚开始搭框架的时候用的是vue-resource后面看到官方推荐ax…

    编程技术 2025年3月8日
    200
  • 如何通过全局方法使用Vue.use()组件

    本篇文章主要介绍了vue自定义全局组件并通过全局方法 vue.use() 使用该组件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 简介 Vue.use( plugin ):安装 Vue.js 插件。如果插件是一个对象,必须提供 ins…

    编程技术 2025年3月8日
    200
  • 在vue中如何使用路由参数传递

    这篇文章主要给大家介绍了关于vue中路由参数传递遇到的坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 前言 vue中路由跳转传参数有多种,自己常用的是下面…

    编程技术 2025年3月8日
    200
  • 在Vue中如何控制全局console.log开关

    这篇文章主要给大家介绍了关于vue根据url传参如何控制全局console.log开关的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。 前言 最近在学习vue,发现了一个…

    编程技术 2025年3月8日
    200
  • 使用Vue如何制作组织架构树组件

    最近公司在做一个基于vue开发的项目,项目需要开发一个展示组织架构的树组件,在网上搜了半天,没有找到合适的,下面小编给大家分享一个基于vue制作组织架构树组件,需要的朋友参考下吧 由于公司业务需求,需要开发一个展示组织架构的树组件(公司的项…

    2025年3月8日 编程技术
    200
  • 使用vue如何制作Tab组件

    这篇文章主要给大家介绍了关于利用vue组件自定义v-model实现一个tab组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 前言 最近在学习vue,今天…

    2025年3月8日
    200
  • 如何重置vue打印变量的显示方式(详细教程)

    这篇文章主要给大家介绍了关于如何重置vue打印变量显示方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。 前言 我们在日常开发中,经常会碰到vue使用conso…

    2025年3月8日
    200
  • 在vue中有关cli使用绝对路径引用问题

    这篇文章主要给大家介绍了关于vue cli使用绝对路径引用图片问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。 前言 Vue是什么,是一套构建用户界面的渐进式…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论