技术论剑,崛起江湖

如何实现Vue组件之间传值

2019-11-23  本文已影响0人  游海东

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>
组件C

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>
组件D

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)


点击按钮,出现内容
上一篇 下一篇

猜你喜欢

热点阅读