1、JavaScript文件
CD.js
import Vue from 'vue'
var CD = new Vue()
export default CD
2、组件C
Ccomponents.vue
<template>
<div>
<button @click="addData">查询</button>
</div>
</template>
<script>
import CD from './CD.js'
export default {
name: 'Ccomponents',
data () {
return {
user: {
'userId':'201901001',
'username':'zhanghua'
}
}
},
methods:{
addData() {
CD.$emit('queryData', this.user)
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>

3、组件D
Dcomponents.vue
<template>
<div>
<div>{{username}}</div>
</div>
</template>
<script>
import CD from './CD.js'
export default {
name: 'Dcomponents',
data() {
return {
username: ''
}
},
mounted() {
CD.$on('queryData',res=>{
this.username = res.username
console.log(res)
})
},
methods:{
queryBdata() {
console.log(this.$props)
}
}
}
</script>
<style>
</style>

4、路径文件
index.js
import Vue from 'vue'
import Router from 'vue-router'
import CDcomponents from '@/components/CDcomponents'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'CDcomponents',
component: CDcomponents
}
]
})
5、实现效果
使用npm run dev命令运行,然后在浏览器中打开界面,点击按钮,显示C组件传到D组件的值(username)

网友评论