Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)


Posted in Javascript onSeptember 14, 2017

在git命令行下,执行以下命令完成环境的搭建:

1,npm install --global vue-cli 安装vue命令行工具

2,vue init webpack vue-demo 使用vue命令生成一个webpack项目,项目名称为vue-demo

Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)

3,cd vue-demo 切入项目

4,npm install安装package.json中的所有依赖包

5,npm run dev运行项目

一、父组件向子组件传递数据

然后删除默认的Hello.vue组件,把App.vue整理成以下样子:

<template>
 <div id="app">
 这是一个空的app
 </div>
</template>

<script>
 export default {
 name : 'app'
 }
</script>

<style>

</style>

把router下面index.js文件修改如下:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
 routes: [
 {
  path: '/',
 }
 ]
})

1、在components目录下创建一个子组件Child.vue

代码如下:

<template>
 <div>
  <h3>这是子组件</h3>
  <p>{{content}}</p>
 </div>
</template>
<script>
export default {
 props : ['content']
}
</script>

2、把App.vue的代码修改如下:

<template>
 <div id="app">
 <child :content="msg"></child>
 </div>
</template>

<script>
 import child from './components/Child.vue';
 export default {
 name : 'app',
 data(){
  return {
  'msg' : '这是来自父组件的问候'
  }
 },
 components : {
  child
 }
 }
</script>

这样就完成了父组件通过props属性向子组件传递数据

也可以用v-bind绑定属性

<template>
 <div id="app">
 <child :content="msg"></child>
 <child v-bind:content="msg"></child>
 </div>
</template>

小结:

子组件在props中创建一个属性,用以接收父组件传过来的值

父组件中调用子组件

在子组件标签中绑定子组件props中创建的属性

把需要传给子组件的值赋给该属性,如我们上文中父组件的msg

二、子组件向父组件传递数据

1,把Child.vue修改如下:

<template>
 <div>
  <h3>这是子组件</h3>
  <p>{{content}}</p>
  <p>
   <input type="button" value="告诉父王一个消息" v-on:click="send">
  </p>
 </div>
</template>
<script>
export default {
 props : ['content'],
 methods : {
  send(){
   this.$emit( 'ParentRecEv', "父王,孩儿正在跟ghostwu学习vue2.0" )
  }
 }
}
</script>

子组件通过$emit发送一个自定义的事件ParentRecEv, 后面参数是内容

2,App.vue修改如下

<template>
 <div id="app">
 <child :content="msg"></child>
 <child v-bind:content="msg" v-on:ParentRecEv="showMsg"></child>
 <p>{{data}}</p>
 </div>
</template>

<script>
 import child from './components/Child.vue';
 export default {
 name : 'app',
 data(){
  return {
  'msg' : '这是来自父组件的问候',
  data : ''
  }
 },
 methods : {
  showMsg( msg ){
  this.data = msg;
  }
 },
 components : {
  child
 }
 }
</script>

在第二个子组件监听事件ParentRecEv,当子组件点击按钮就会触发这个自定义事件,然后触发showMsg函数,就能收到子组件传递的数据,没有绑定自定义事件是不能收到子组件发送的信息的.

小结:

子组件中通过$emit触发一个自定义事件

将需要传的值作为$emit的第二个参数,该值会被父组件的方法接收到

在父组件中调用子组件并在子组件标签上绑定发送的自定义事件

他们的共同点就是有桥梁,子向父的桥梁是自定义事件$emit,父向子的桥梁是props中的属性. 这就是他们之间传递数据的关键

以上这篇Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
关于jquery的多个选择器的使用示例
Oct 18 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
Feb 04 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
微信小程序 共用变量值的实现
Jul 12 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
Mar 08 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
发布订阅模式在vue中的实际运用实例详解
Jun 09 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 Javascript
在实例中重学JavaScript事件循环
Dec 03 Javascript
对于js垃圾回收机制的理解
Sep 14 #Javascript
使用SVG基本操作API的实例讲解
Sep 14 #Javascript
JSON 数据格式详解
Sep 13 #Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 #Javascript
详解动画插件wow.js的使用方法
Sep 13 #Javascript
JS库之Highlight.js的用法详解
Sep 13 #Javascript
详解wow.js中各种特效对应的类名
Sep 13 #Javascript
You might like
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP中的extract的作用分析
2008/04/09 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
python分割和拼接字符串
2013/11/01 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
python命令行参数用法实例分析
2019/06/25 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
速比涛英国官网:Speedo英国
2019/07/15 全球购物
信用卡工作证明模板
2014/09/14 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
学雷锋感言
2015/08/03 职场文书
办公室卫生管理制度
2015/08/04 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS