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 相关文章推荐
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
微信小程序block的使用教程
Apr 01 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 Javascript
vue render函数动态加载img的src路径操作
Oct 26 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伪静态页面函数附使用方法
2008/06/20 PHP
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
服务器web工具 php环境下
2010/12/29 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
Python unittest单元测试框架总结
2018/09/08 Python
python实现自动登录
2018/09/17 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
电气专业推荐信范文
2013/11/18 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
法制教育演讲稿
2014/09/10 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
走群众路线学习笔记
2014/11/06 职场文书
淘宝好评语句大全
2014/12/31 职场文书
小学英语教学随笔
2015/08/14 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL