vue.js 组件数据传递

一 父---> 子 组件通信
1,声明一个组件(props 指定组件外来接受的参数,我指定了一个string类型的message参数,默认内容为‘I Am AESCR’)

 Vue.component(‘test-com‘,{
        props:{
            message:{
                type:String,
                default:‘I Am AESCR‘
            }
        },
        template:‘<div>{{message}}</div>‘
    })

<div id="app">
    <test-com message=‘边学边记‘></test-com>
</div>
        2,把需要传递的内容直接写在组件属性上面,通过v-bind:形式绑定,传递内容就变得容易修改了
<div id="app">
    <input type="text" v-model=‘msg‘ placeholder="请输入内容"/>
    <test-com v-bind:message=‘msg‘></test-com>
</div>
<script>
    Vue.component(‘test-com‘,{
        props:{
            message:{
                type:String,
                default:‘默认信息‘
            }
        },
        template:‘<div>{{message}}</div>‘
    })
    new Vue({
        el:‘#app‘,
        data:{
            msg:‘I an AESCR‘
        }
    })
</script>

二 子 --->父组件数据传递
1,通过触发事件的方式来传递数据,我们先说明一个组件,和一个事件

 Vue.component(‘test-com‘,{
        data:function(){
            return{
                msg:‘I am AESCR‘
            }
        },
       methods: {
            hello:function(){
                this.$emit(‘sayhello‘,this.msg)  #sayhello 为组件上监听的事件名称一致,后面为参数
            }
        },
        template:‘<div><input type="button" v-on:click="hello()"  value="打招呼" /><input type="text" v-model="msg"/></div>‘
    })
  调用组件
    <div id="app2">
        <p>外层 {{content}}</p>

        <test-com v-on:sayhello=‘sayhellocontent‘></test-com> #sayhellocontent为外层事件名称
    </div>
          new Vue({
        el:‘#app2‘,
        data:{
            ‘content‘:null,
        },
        methods:{
            sayhellocontent:function(content){
                            #content会接受到$emit传递的参数
                this.content=content
            }
        }
    })

三 组件间传递数据

1.新建一个js文件,然后引入vue 实例化vue 最后暴露这个实例
2.在要广播的地方引入刚才定义实例
3.通过vueEmit.$emit(‘名称‘,‘数据’)
4.在接收数据
---------------------------------------------------
Vue.$on(‘名称‘,function(){
})
我们可以实例化一个vue实例,相当于一个第三方

let vm = new Vue(); //创建一个新实例
<div @click="ge"></div>
methods: {
    ge() {
        vm.$emit(‘blur‘,‘sichaoyun‘); //触发事件 传递参数
    }
}
组件接受
created() {
  vm.$on(‘blur‘, (arg) => {
        this.test= arg; // 接收
    });
}

原文地址:https://blog.51cto.com/12268222/2376279

时间: 2024-10-09 16:31:44

vue.js 组件数据传递的相关文章

vue.js 组件之间传递数据

组件是 vue.js  最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一.本文就这个知识点和大家一起来扒一扒,希望对大家 学习vue.js有所帮助. 组件 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A  在它的模板中使用了组件  B ,那么组件  A  就是父组件,组件  B  就是子组件. //  注册一个子组件 Vue.component(

vue.js之数据传递和数据分发slot

一.组件间的数据传递 1.父组件获取子组件的数据 *子组件把自己的数据,发送到父级 *vm.$emit(事件名,数据); *v-on: @ 示例用法:当点击send按钮的时候,"111"变成"我是子组件的数据" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父级获取子级的数据

vue.js 组件之间如何实现数据传递?

组件是 vue.js  最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一.本文和大家分享的就是vue.js  组件之间传递数据相关内容,一起来看看吧,希望对大家 学习vue.js有所帮助. 组件 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A  在它的模板中使用了组件  B ,那么组件  A  就是父组件,组件  B  就是子组件. //  注册

vue教程3-05 vue组件数据传递、父子组件数据获取

vue教程3-05 vue组件数据传递 一.vue默认情况下,子组件也没法访问父组件数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="bower_components/vue/dist/vue.js"><

vue 组件数据传递:

vue1 组件数据传递: √1. 子组件就想获取父组件data 在调用子组件: <bbb :m="数据"></bbb> 子组件之内: props:['m','myMsg'] props:{ 'm':String, 'myMsg':Number } 2. 父级获取子级数据 *子组件把自己的数据,发送到父级 vm.$emit(事件名,数据); v-on: @ --------------------------------------------vm.$dispat

如何理解vue.js组件的作用域是独立的

vue.js组件的作用域是独立,可以从以下三个方面理解: 1.父组件模板在父组件作用域内编译,父组件模板的数据用父组件内data数据:2.子组件模板在子组件作用域内编译,子组件模板的数据用子组件内data数据,如果要用父组件的必须用props传递:3.子组件标签的数据,使用父组件内的data数据 案例代码: <div id="demo"> <my-component v-if="show" v-bind:my-message="messa

如何对第一个Vue.js组件进行单元测试 (上)

首先,为什么要单元测试组件? 单元测试是持续集成的关键.通过专注于小的.独立的实体,确保单元测试始终按预期运行,使代码更加可靠,你可以放心地迭代你的项目而不必担坏事儿. 单元测试不仅限于脚本.可以独立测试的任何东西都是可单元测试的,只要你遵循一些好的做法.这些实例包括单一责任.可预测性和松散耦合. 作为我们应用程序的可重用实体,Vue.js组件是单元测试的理想选择.我们将用不同的输入和交互测试做好的单个单元,并确保它始终按照我们的预期运行. 在开始之前 Vue CLI 3发布了.Vue Test

Vue.js 组件精讲

课程介绍:你会学到什么        了解 Vue.js 组件开发的精华        Vue.js 组件知识全覆盖        掌握多种 Vue.js 组件开发的模式        独立组件不依赖 Vuex 和 Bus 情况下,各种跨级通信手段(provide / inject.broadcast / dispatch.findComponents 系列)        7 个完整的 Vue.js 组件示例        如何做好一个开源项目        Vue.js 容易忽略的 API

vue.js组件之j间的通讯一 子组件接受父祖件数据

Vue2.0的三种常用传值方式.父传子.子传父.非父子组件传值 在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来.这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况.当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍.我先给大家介绍Vue开发中常用的三种传值方式. Vue常用的三种传值方式有: