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 相关文章推荐
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 Javascript
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
利用JavaScript写一个简单计算器
Nov 27 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
JS 建立对象的方法
2007/04/21 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
python 性能优化方法小结
2017/03/31 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
单位授权委托书范文
2014/08/02 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
Python中的 Set 与 dict
2022/03/13 Python