vue中组件间通信机制之pubsub组件用法

落日映苍穹つ 2022-12-01 05:17 275阅读 0赞

vue中组件间通信机制之pubsub组件用法

在package.json文件中导入组件依赖:

“pubsub-js”: “^1.9.0”

  1. "dependencies": {
  2. "@jiaminghi/data-view": "^2.9.6",
  3. "cesium": "^1.70.0",
  4. "echarts": "^4.8.0",
  5. "element-ui": "^2.13.1",
  6. "file-saver": "^2.0.2",
  7. "jquery": "^3.3.1",
  8. "ol": "^6.3.1",
  9. "ol-ext": "^3.1.12",
  10. "popper.js": "^1.16.1",
  11. "axios": "^0.19.2",
  12. "vue": "^2.5.2",
  13. "vue-cesium": "^2.1.4",
  14. "vue-layer": "^1.2.0",
  15. "vue-router": "^3.0.1",
  16. "vue-runtime-helpers": "^1.1.2",
  17. "vuex": "^3.2.0",
  18. "webpack-dev-server": "^2.11.5",
  19. "xlsx": "^0.16.0",
  20. "ztree": "3.5.24",
  21. "pubsub-js": "^1.9.0"
  22. },

下载pubsub-js组件

  1. npm install
  2. #或
  3. cnpm i

vue页面中发布消息用法:
//发布单个消息

  1. import pubSub from "pubsub-js";
  2. pubSub.publish("current_xzq", that._current_xzqdm);

//发布多个消息(可在不同的vue页面分别执行单个的发布操作)

  1. //map.vue中执行
  2. pubSub.publish("current.xzqdm", {
  3. current:{
  4. xzqdm:that._current_xzqdm}});
  5. //nd.vue中执行
  6. pubSub.publish("current.nd", {
  7. current:{
  8. nd:that._nd}});

vue页面订阅消息的用法:
//订阅一个消息

  1. mounted() {
  2. pubSub.subscribe("current_xzq", (msg, current_xzq) => {
  3. this.init_xzqdm(current_xzq);
  4. alert(current_xzq);
  5. });
  6. },

//订阅多个消息

  1. mounted() {
  2. //绑定订阅
  3. pubSub.subscribe("current", (msg, current) => {
  4. this.init_xzqdm(current.xzqdm,current.nd);
  5. alert(current.xzqdm+"-"+current.nd);
  6. });
  7. //绑定resize事件
  8. let that = this;
  9. window.addEventListener(
  10. "resize",
  11. () => {
  12. that.echart1.echartObj.resize();
  13. },
  14. false
  15. );
  16. },

—the—end—

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue组件通信机制(十)

    一、组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有以下几种关系: ![image][]