vue.js官方教程上讲的也挺清楚的了,自己整理一遍以加深印象,同时也完成自己的项目中需要的动态创建表单提交编辑修改功能。
表单主要是v-model双向绑定实现父组件与子组件的双向数据传递,所以首先说一下组件之间的通信。

组件通信

父组件向子组件传值 props

// 子组件
Vue.component("my-com",{template:"<div>{{msg}}===={{info}}</div>",props:["msg"],    //必须是字符串形式data:function(){ return {info:"子组件的信息"}}
});// 使用时
<my-com :msg="message"></my-com>  // 必须使用v-bind绑定,不然传递的是字符串var app=new Vue({el:"#app",data:{message:"父组件的内容"}
});
复制代码

子组件向父组件传递$emit()

//逻辑是,给子组件添加事件,子组件事件触发时,往上触发父组件的事件,并且给事件传值,父组件即可获得子组件的值并在事件中处理
Vue.component("my-com",{template:'<button type="button" @click="add">点击+1</button>',data:function(){return {count:0}},methods:{add(){this.count++;this.$emit("from-son",this.count);}}
})// 使用时
<my-com @from-son="add1"></my-com> // 触发from-son事件,接收到子组件的数据var app=new Vue({el:"#app",data:{msg:""},methods:{add1(value){this.msg=value;}}
})
复制代码

双向数据传递 v-model

由前面分析可以看出,实现双向绑定的话,就是同时有props传递,又有$emit()触发
首先,<input v-model="text">等价于:

<input v-bind:value="text" v-on:input="text=$event.target.value">
复制代码

因此组件要使用v-model,也需要:

<my-componentv-bind:value="text"         //父向子传递v-on:input="text=$event.target.value"  //子向父传递
><my-component>
复制代码

所以子组件必须满足:

Vue.component("my-component",{template:'<div @click="fn"></div>'props:['value'],methods:{fn(event){this.$emit("input",event.target.value)}}
})复制代码

转载于:https://juejin.im/post/5ccba9cce51d453ab5096a79

vue学习笔记(1)-组件通信相关推荐

  1. Vue学习笔记05 组件的自定义事件-组件通信-$nextTick-脚手架解决ajax跨域-插槽-过渡动画

    文章目录 Vue学习笔记05 父组件给子组件传值 注意点 子组件给父组件传值 父组件接受子组件的传值 通过函数 组件的自定义事件 事件绑定的第一种写法 @或v-on 事件绑定的第二种写法:使用ref ...

  2. 四、Vue组件化开发学习笔记——父子组件通信,父级向子级传值(props),子级向父级传值(自定义事件),slot插槽

    一.父子组件的通信 在上一篇博文中,我们提到了子组件是不能引用父组件或者Vue实例的数据的. 但是,在开发中,往往一些数据确实需要从上层传递到下层: 比如在一个页面中,我们从服务器请求到了很多的数据. ...

  3. Vue学习笔记02 = 组件化

    目录 一.组件化基本概念 什么是组件化?组件化有什么作用? 人面对复杂问题的处理方式: 组件化也是类似的思想: Vue组件化思想: 组件化思想的应用: 二.组件的基本使用: 2.1.创建组件的构造器. ...

  4. 【Vue】Vue学习笔记——UI组件库和常用插件

    文章目录 6. UI组件库和常用插件 6.1 Element-ui 6.2 Vue-router 6.2.1 基本用法 6.2.2 跳转 6.2.3 路由嵌套 6.2.4 路由参数传递 6.3 Axi ...

  5. Vue学习笔记(八) 组件进阶

    1.插槽 (1)插槽内容 像 HTML 元素一样,我们常常需要给组件传递内容 比如在下面的例子中,我们给自定义组件 prompt-info 传入 出错啦 的文本 <!DOCTYPE html&g ...

  6. Vue学习笔记_组件化

    文章目录

  7. Vue学习笔记(二)组件化和模块化

    Vue学习笔记(二)组件化和模块化 前言 组件化 什么是组件化 1.基础使用 2.全局组件和局部组件 3.语法糖和模板抽离 4.组件的data为什么是函数 5.父子组件 5.1 父子组件 5.2 父子 ...

  8. Vue学习(动态组件、组件路由缓存keepalive)-学习笔记

    文章目录 Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 组件路由缓存keepalive Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 < ...

  9. vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值?

    vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 文章目录 vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 什么是组件? 为什么要使用组件? 如何使用 ...

最新文章

  1. 干货:计算机网络知识总结
  2. 「名词」数据管理、数据治理、数据中心、数据中台、数据湖、数据资产等
  3. 安卓应用程序一般采用什么计算机语言开发,Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言...
  4. 机加工程序工时程序_准终工时、人工工时、机器工时,十个工程师九个会弄错...
  5. zend studio如何更改字符集
  6. 【转】请求处理机制其二:Django中间件的解析
  7. 51nod1264线段相交
  8. 拉电阻、下拉电阻的原理和作用
  9. 打车软件系统分析与设计方案
  10. 免费下载IEEE、SCI论文的网站
  11. 解决steam无法启动gta5报错msvcp140.dll丢失
  12. 基于qt开发的一款聊天气泡框
  13. 摘录3:没有趋势,没有背驰。
  14. 京东物流IPO:商流、物流、资金流,“三流”难归一
  15. 科技进步计算机开机速度,笔者教你电脑开机慢怎么办
  16. 扁平化风格职业规划PPT模板
  17. 电脑问题处理篇4:解决华硕电脑“ASUS Battery Health Charging”软件界面呈现灰色不能选择充电模式的问题
  18. Ruby gem的proxy代理设置方法
  19. 一个年化收益30%的指数
  20. 呼叫中心管理之:让座席看见自己

热门文章

  1. springcloud微服务实战 学习笔记五 Hystrix服务降级 Hystrix依赖隔离 断路器
  2. 回到顶部最简单的JQuery实现代码
  3. zend studio安装xdebug调试工具
  4. Android中JSON解析细解及实例
  5. Code First 迁移
  6. AndroidStudio工具将Module项目导出成Jar和arr库
  7. HDU 4917 Permutation(拓扑排序 + 状压DP + 组合数)
  8. Oracle----date
  9. Request.Browser.Crawler 属性的工作原理分析
  10. 一个JavaScript上的OOP编程技巧:继承