克己微信小顺序通信JS

克己微信小顺序通讯JS

原由

如今微信小顺序开辟基础会运用到组件的开辟。跟着组件的不停增添,使得组件之间的通讯更加频仍。然后,微信小顺序中组件之前通讯必需经由过程父子关系才举行。

这个js能使得我们在组件和页面之间随便通讯,您只需要根据范例注册,运用即可,能够帮你竖立恣意两个组件之间的通讯通道。

项目

喜好的朋侪不要悭吝你的 star , 在此先感谢了

功用

  • Component 之间通讯
  • Page之间通讯
  • Component和Page之间的通讯
  • 一对一通讯
  • 一对多通讯(播送机制)

运用

  • 因为微信小顺序默许不支持npm包管理机制,你从 github下载zip包,提取unicom.js后,直接放入微信小顺序源码目次(代码没有运用ES6语法,放心运用)

全局注册机制(将会重写Page和Component)

// 引入包
var unicom = require("unicom");
// 下面这个函数将重写 Page 和 Component
// 注:全局机制注册后,一切部分注册将失效
unicom.rewrite();

部分注册

// Page中注册
var unicom = require("unicom");
// Page中经由过程onLoad时,初始化unicom
Page({
    onLoad: function(){
        // 注册 this 到unicom
        // id 可选, 优先这里传入的ID
        unicom.pageInit(this, "id");
    }
})

// Component中运用behaviors来注册
Component({
    behaviors: [unicom.behavior]
})

关于设置页面id

// 页面中 Page
Page({
    unicomId: "id"
})
// 或许 部分注册中
// 注:假如运用 全局注册,部分注册将失效,只能经由过程上面要领来注册
Page({
    onLoad: function(){
        unicom.pageInit(this, "id");
    }
})

假如同时运用了两种体式格局注册,假如部分注册见效,优先部分注册,否组会运用第一种

关于设置组件id

<!-- 组件中的id -->
<!-- 组件能够被屡次建立,所以运用传参来设置id -->
<compon unicom-id="id"></compon>

关于设置通讯要领

// Page和Component 通用
Page|Component({
    unicom: {
        // 定义音讯要领
        // arg1, arg2 是挪用时传入
        message: function(arg1, arg2) {
            // 当前页面 unicom相干参数 请不要随便修正
            this.unicom
            // 天生的唯一id
            this.unicom.id
            // 传入的唯一id
            this.unicom.cusId
            // 挪用我的末了发送者
            this.unicom.sender
            // 发送音讯
            this.unicom.send
        }
    }
})

发送音讯

// Page和Component 通用
Page|Component({
    methods: {
        method1: function() {
            // 发送了message音讯后,一切定义message音讯的unicom都能够收到音讯
            this.unicom.send("message", "arg1", "arg2")
        },
        method1: function() {
            // 将message音讯发送给 id1,id2这两个有自定义id的组件或许页面
            this.unicom.send("message#id1,id2", "arg1", "arg2")
        }
    }
})

// 要领二 引入 unicom
var unicom = require("unicom");
// 发送了message音讯后,一切定义message音讯的unicom都能够收到音讯
unicom.send("message", "arg1", "arg2")
// 将message音讯发送给 id1,id2这两个有自定义id的组件或许页面
unicom.send("message#id1,id2", "arg1", "arg2")

unicom 中的属性

  • unicom.send(“事宜称号[#id1,id2]”, …参数) 触发事宜,假如设置了目的id,则只发送到目的id中对应的要领。
  • unicom.behavior Component中,运用behaviors来部分注册
  • unicom.pageInit(this[, id]) Page中部分注册函数
  • unicom.rewrite() app.js中全局注册unicom的注册函数

假如上述有兴致,还能够加QQ群议论: 953844490

    原文作者:轨迹
    原文地址: https://segmentfault.com/a/1190000017128510
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞