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 相关文章推荐
理解JavaScript中的事件
Sep 23 Javascript
js获取location.href的参数实例代码
Aug 02 Javascript
详解JavaScript中的异常处理方法
Jun 16 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
jQuery简单动画变换效果实例分析
Jul 04 Javascript
EasyUI中在表单提交之前进行验证
Jul 19 Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 Javascript
js实现上下左右弹框划出效果
Mar 08 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
基于JavaScript实现省市联动效果
Jun 22 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
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
javascript调试说明
2010/06/07 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
js jquery数组介绍
2012/07/15 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
js实现录音上传功能
2019/11/22 Javascript
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
python+requests接口自动化框架的实现
2020/08/31 Python
如何使用Pytorch搭建模型
2020/10/26 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
电力安全事故反思
2014/04/27 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers