假如咱们有两个子组件:Blog.vue 和News.vue 它们同为兄弟组件vue
我想实现News组件数据传递给Blog组件,app
步骤以下:this
一、建立一个js文件:VueEvent.js 代码以下:spa
import Vue from 'vue'; var VueEvent=new Vue(); export default VueEvent;
二、在New引入 上一步js文件,而且广播数据code
代码以下:blog
<template> <div id="newapp"> <h1>我是新闻</h1> <button @click="emitblog()">广播数据</button> </div> </template> <script> import VueEvent from '../models/VueEvent.js'; export default { name:'mynews', data () { return { msg:'新闻传递过来的数据122' } } ,methods:{ emitblog() { alert(1); //广播数据 VueEvent.$emit("new-data",this.msg); } } } </script>
三、在blog里获取也引入步骤2js文件,而且获取数据ip
<template> <div id="homeapp"> <h1>我是blog</h1> </div> </template> <script> import VueEvent from '../models/VueEvent.js'; export default { name:'myblog', data () { return { msg:'blog' } } ,mounted() { //获取数据 VueEvent.$on("new-data",function(data){ alert(data); }); } } </script>