美文网首页
vue 组件之间的传值

vue 组件之间的传值

作者: super静_jingjing | 来源:发表于2018-08-28 18:20 被阅读0次

vue父组件给子组件传值

  1. 父组件给导入的子组件绑定一个数据:title是父组件的数据
<template>
   <div id="home">
       父组件
       <v-header :title="title"></v-header>
   </div>
</template>
<script>
import Header from './Header.vue';
   export  default{
       data(){
           return{
               msg:"我是一个home组件",
               title:"我是父组件的数据"
           }
       },components:{
           'v-header':Header
       }
   }
</script>
<style lang="css" scoped>
</style>

2 子组件获取数据. props:['title'] 即可获得子组件数据

<template>
    <div id="header">
        <h2>我是子组件-----{{title}}</h2>
    </div>
</template>
<script>
    export  default{
        data(){
            return{
                msg:"我是一个home组件"
            }
        },methods:{

        },props:['title']
    }
</script>
 <style lang="css" scoped>
</style>

同样,在子组件中也可以调用父组件的方法;在父组件中创建一个方法,然后传给子组件;

<template>
    <div id="home">
        父组件
        <v-header :run="run"></v-header>
    </div>
</template>
<script>
import Header from './Header.vue';
    export  default{
        data(){
        },components:{
            'v-header':Header
        },methods:{
            run(){
                alert("我是父组件的方法");
            }
        }
    }
</script>

在子组件中获取并且调用;

<template>
    <div id="header">
        <h2>我是子组件</h2>
        <button @click="run()">子组件执行父组件的run方法</button>
    </div>
</template>
<script>
    export  default{
        data(){
        },props:['title','run']
    }
</script>

vue父组件主动获取子组件数据
将子组件看成父组件dom中的一部分,所以可以使用ref来获取
在调用子组件时设置ref

<v-header ref="header"></v-header>

在父组件需要获取子组件数据或方法的地方获取

//获取子组件数据
this.$refs.header.msg
//调用子组件方法
this.$refs.header.childRun();

vue子组件主动获取父组件数据

this.$parent.父组件方法
this.$parent.父组件数据

非父子组件传值

  1. 新建一个js文件,然后引入vue,实例化vue,然后暴露这个实例
import Vue from 'vue';
var VueEvent = new Vue();
export default VueEvent;
  1. 在要广播和需要接收数据的两个地方引入刚才定义的实例
import VueEvent from '../model/VueEvent.js';

3.通过emit广播数据

VueEvent.$emit('key' , data); 

4.在接收数据的地方通过on接收数据

VueEvent.$on('key');

相关文章

网友评论

      本文标题:vue 组件之间的传值

      本文链接:https://www.haomeiwen.com/subject/marqwftx.html