• vue组件传值


    VUE eventBus
    问题背景:组件传值;在项目开发中,会发现组件传值是一个组基本的操作,也是用的最多的。但是很多时候可能涉及到爷爷和孙子,甚至重孙子之间需要的传值。这个时候eventBus就到了大显身手的时候了。
    eventBus 嗯 ,就叫一个事件公共汽车吧。每个人把需要共享给别人的物品就放在这个车上,谁需要了就可以去拿,这样子是不是很方便,每个人都可以访问到,每个人也可以往这个车子上放东西。
    下面开始这个过程,一共就四步。

    第一步就是先把公交车造出来。先创建eventBus.js 文件。
    /**
    * 某某页面
    * @author: leon
    * @create: 2018-05-21 10:01
    */
    import Vue from 'vue';
    const bus = new Vue();
    export default {
    /**
    * 注册全局事件
    * @param eventName 事件名称
    * @param handler 事件处理函数
    * @param scope vm对象,一般传this 建议必须要传(页面的this),自动销毁功能
    * @param once 是否单次注册
    */
    on(eventName, handler, scope = null, once = false) {
    if (once) {
    bus.$once(eventName, handler);
    return;
    }
    bus.$on(eventName, handler);
    if (scope) {
    let originalDestroy = scope.$destroy;
    scope.$destroy = function () {
    bus.$off(eventName, handler);
    originalDestroy.call(this);
    }
    }
    },
    
    /**
    * 触发事件
    * @param eventName 要触发的事件名称
    * @param data 事件对象
    */
    emit(eventName, data = {}) {
    bus.$emit(eventName, data);
    }
    };
    
    
    第二步就是让这个公共汽车上路。开车了。在全局引入
    import eventBus from './eventBus'
    Vue.prototype.$eventBus = eventBus;
    
    第三步就是放东西。传值这里通过emit这个方法进行传递。一般是放在函数里调用。
    getNum(){
    this.$eventBus.emit("haha","我是值")
    }
    
    第四步就是拿下来咯,一般写在mounted里面,这样可以避免一个多次触发的问题。当然可以自己写在函数里试一试。
    mounted() {
    this.$eventBus.on(
    "haha",
    function(data) {
    console.log(data);
    },
    this
    );
    },
  • 相关阅读:
    在SharePoint 2010上给用户操作菜单增加一个操作
    查看User Profile的名称和显示名称
    SharePoint列表或表单库使用ID做标题
    SharePoint中User Profile对应于AD的属性
    C#—发邮件方法
    下载和安装ASP.NET MVC
    在InfoPath中利用SharePoint的Lists Web Service向列表提交数据(续一)
    给SharePoint中的User Profile添加属性需要注意的地方
    从PeopleEditor控件中取出多用户并更新到列表
    SharePoint中低权限用户通过提升权限创建用户组
  • 原文地址:https://www.cnblogs.com/shusonghe/p/15111197.html
Copyright © 2020-2023  润新知