[js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
2017-09-13 22:14
1291 查看
在git命令行下,执行以下命令完成环境的搭建:
1,npm install --global vue-cli 安装vue命令行工具
2,vue init webpack vue-demo 使用vue命令生成一个webpack项目,项目名称为vue-demo
3,cd vue-demo 切入项目
4,npm install安装package.json中的所有依赖包
5,npm run dev运行项目
一、父组件向子组件传递数据
然后删除默认的Hello.vue组件,把App.vue整理成以下样子:
把router下面index.js文件修改如下:
1、在components目录下创建一个子组件Child.vue
代码如下:
2、把App.vue的代码修改如下:
这样就完成了父组件通过props属性向子组件传递数据
也可以用v-bind绑定属性
小结:
子组件在props中创建一个属性,用以接收父组件传过来的值
父组件中调用子组件
在子组件标签中绑定子组件props中创建的属性
把需要传给子组件的值赋给该属性,如我们上文中父组件的msg
二、子组件向父组件传递数据
1,把Child.vue修改如下:
子组件通过$emit发送一个自定义的事件ParentRecEv, 后面参数是内容
2,App.vue修改如下
在第二个子组件监听事件ParentRecEv,当子组件点击按钮就会触发这个自定义事件,然后触发showMsg函数,就能收到子组件传递的数据,没有绑定自定义事件是不能收到子组件发送的信息的.
小结:
子组件中通过$emit触发一个自定义事件
将需要传的值作为$emit的第二个参数,该值会被父组件的方法接收到
在父组件中调用子组件并在子组件标签上绑定发送的自定义事件
他们的共同点就是有桥梁,子向父的桥梁是自定义事件$emit,父向子的桥梁是props中的属性. 这就是他们之间传递数据的关键
1,npm install --global vue-cli 安装vue命令行工具
2,vue init webpack vue-demo 使用vue命令生成一个webpack项目,项目名称为vue-demo
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中的属性. 这就是他们之间传递数据的关键
相关文章推荐
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- [js高手之路]Vue2.0基于vue-cli+webpack同级组件之间的通信教程
- Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
- Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
- [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解
- Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信
- 基于vue.js 2.0,不使用webpack,只在浏览器上单独使用Element UI的Table表格控件完成增删改查页面
- 基于webpack+Vue2.0搭建webapp(vue-cli原理)
- 基于vue.js 2.0,不使用webpack的nodejs服务,只在浏览器上单独使用在Element UI的Tree树形控件
- Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信
- Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
- vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析
- vue.js父子组件通信动态绑定
- vue-cli起的webpack项目 用localhost可以访问,但是切换到ip就不可以访问 我用的是vux起的一个项目(移动端,基于vue的),因为是移动端的,需要在手机上测试,发现用
- 用webpack2.0构建vue2.0单文件组件超级详细精简实例
- node+webpack环境搭建 vue.js 2.0 基础学习笔记
- Vue.js起步实践--不用webpack或vue全家桶情况下开始动手写一个小组件
- 基于vue.js和webpack的Chat示例