组件之间传值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">

    <my-alex></my-alex>
    <hr>
    <my-mjj></my-mjj>

</div>
<script src="https://cdn.bootcss.com/vue/2.5.21/vue.js"></script>
<script>
    // 借助一个空的VUE对象  实现组件之间通信
    let bus = new Vue();

    //子组件A
    let A = {
        template: `
            <div>
                <h2>这是子组件: my-alex</h2>
                <p> my-mjj被选中的次数:{{ num }} </p>
            </div>
        `,
        data() {
            return {
                num: 0
            }
        },
        // 关键点 第二步 监听B组件触发了xuanwo A就加1
        mounted() {
            //在文档准备就绪之后就要开始监听bus是否触发了xuanwo的事件
            /*
            bus.$on("xuanwo",function(val){
                // this.num += 1;
                console.log(val);// 点击B 可以跟着加1了
                //关键点 第三步  怎么改A里面的num 的值
                console.log(this); //bus对象  不是A
            })
            */

            bus.$on("xuanwo",(val)=>{  //把上面的匿名函数改成箭头函数
                // this.num += 1;
                console.log(val);  //点击B 可以跟着加1了
                //关键点 第三步  怎么改A里面的num 的值
                console.log(this); //A组件
                this.num = val;
            })
        }
    };

    //子组件B
    let B = {
        template: `
            <div>
                <h2>这是子组件: my-mjj</h2>
                <button v-on:click="add">选我</button>

            </div>
        `,
        data(){
          return{ num:0 }
        },
        methods:{
            add(){
                this.num += 1;
                // **** 关键点第一步 利用bus 对象抛出一个自定义事件
                bus.$emit("xuanwo",this.num)
            }
        }
    };

    //实例化根组件
    let app = new Vue({
        el: "#app",
        data: {
            totalNum: 0
        },
        components: {
            "my-alex": A,
            "my-mjj": B,
        }
    })
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/kenD/p/10230951.html

时间: 2024-10-18 09:37:30

组件之间传值的相关文章

react组件之间传值方式

1.父向子(通过props传值) 2.父向更深层的子(通过context传值) 3.子向父(通过回调函数传值:在父组件中创建一个函数来接收子组件传过来的参数值,通过父组件将这个函数做为子组件的属性传递到子组件中,再然后,子组件通过props接收并调用该函数同时传参) 4.没有任何嵌套关系的组件之间传值(如:兄弟组件之间) 原文地址:https://www.cnblogs.com/yieix/p/12004664.html

从0开始探究vue-组件化-组件之间传值

理解 Vue中有个非常重要的核心思想,就是组件化,组件化是为了代码复用 什么是组件化 组件化,就像一个电脑主机里的主板,有内存条的插口,有硬盘,光驱等等的插口,我们的项目,就像一个电脑主机,通过各种组件化的模块(硬盘.内存等),来拼合成一个完整的电脑. 如图,每一个块都是一个组件,由许许多多的组件拼合而成,可以无限的嵌套下去 组件化的好处 模块复用,提高效率,让重复的代码只写一遍. 预留个性化设置,可以保证模块,既通用,又可变. 提高可维护性,如果一个项目多个页面使用了同一个组件(例如消息弹框)

vue父子组件之间传值

vue父子组件进行传值 vue中的父子组件,什么是父组件什么是子组件呢?就跟html标签一样,谁包裹着谁谁就是父组件,被包裹的元素就是子组件. 父组件向子组件传值 下面用的script引入的方式,那种vue-cli搭建的同理 父组件通过 v-bind:属性名(自定义的) = "要传递的数据" 子组件通过 props:["属性名"]  这个属性名就是父组件传递过来的数据信息 <div id="app"> <mod :abc=&qu

Vue 父组件与子组件之间传值

一.父组件与子组件之间值传递步骤如下: 例如:我有一个父组件Myhome.vue 和一个子组件Header.vue 1.父组件调用子组件的时候,动态绑定属性值 <v-myheader :title="title"></v-myheader> 2.在子组件使用 props 来接受父组件传过来数据(props:['title']),如果是多个就定义多个属性就可以 完整代码如下: 1.Myhome.vue(父组件)代码如下: <template> <

vue组件之间传值、父组件获取子组件的方法

1.子组件向父组件传值 子组件 <template>     <div class="app">        <input @click="sendMsg" type="button" value="给父组件传递值">     </div> </template> <script> export default {       data () {    

angular5 组件之间监听传值变化

nagular5 父子组件之间传值是实用 @Input 和@Output 当然一般传值变化是指父组件像子组件传的值变化的情况,如地图zoom变化 当筛选范围变化时地图比例尺变化地图随着缩放,这是地图控件就要监听父组件的筛选范围值变化 import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, ElementRef, OnChanges, SimpleChanges} from '@angular/core'; /*imp

React 组件之间如何交流

原文  http://blog.51yuekan.com/2015/07/23/2015-07-19-react-component-communicate/ 主题 React 前言 今天群里面有很多都在问关于 React 组件之间是如何通信的问题,之前自己写的时候也遇到过这类问题.下面是我看到的一篇不错英文版的翻译,看过我博客的人都知道,我翻译可能不会按部就班,会尽可能用中文的意思,来将作者要讲述的技术描述清楚.英文能力有限,如果有不对的地方请跟我留言,一定修改--^_^ 原著序 处理 Rea

Vue组件间传值 v-model

使用过Vue的同学应该都了解组件之间传值 父组件 --> 子组件 : props 子组件 --> 父组件 : 事件 其实有一种更为简单的方法,是基于上述两种方法,那就是 v-model 我们都在表单中使用过 v-model 来绑定数据,其实组件之间也是可以用 v-model 进行双向绑定的 我们来了解一下 v-model 的原因 <input type="text" v-model="message" /> <!--其实上面这种写法只是

wepy组件间传值

普通组件引用 当页面需要引入组件,或组件需要引入子组件时,必须在.wpy文件的<script>部分先import组件文件,然后在components对象中给组件声明唯一的组件ID:接着在<template>模板部分中,添加以组件ID进行命名的自定义标签,以插入组件. <template> <!-- 以`<script>`脚本部分中所声明的组件ID为名命名自定义标签,从而在`<template>`模板部分中插入组件 --> <ch