一、场景

  vue中非父子组件之间通信时,使用vuex有时间会很麻烦,这时候可以通过bus总线来实现 消息的订阅与发布

 

二、实现方法

  1、main.js

 
//main.js
 
Vue.prototype.bus = new Vue();
new Vue({
  render: h => h(App)
    ...
}).$mount('#app');
/*
*通过把一个vue实例赋于Vue构造函数原型上的一个属性bus(当然起任何名称都是可以的)
*而每个Vue实例都是有$emit和$on方法的
*由于bus属性在Vue原型上,根据原型链查找规则,在页面中我们就可以通过 this.bus.$emit 和 
*this.bus.$on来进行跨组件通信了
*/
 

  2、消息发布

  可以在任何组件中

 
//发布一个事件
this.bus.$emit('even-name',args1, arg2 , ...)

  3、消息订阅

  一般可以写在 created 或 mounted 中

 
// 消息订阅
this.bus.$on('event-name', (...args) => {
    //接收参数,触发方法相应的方法等操作
})
posted @ 2021-09-26 21:03 catgatp 阅读(931) 评论(0) 推荐(0) 编辑
摘要: Django中ORM的锁和事务 一、锁 1.行级锁 2.表锁 二、事务 1.全局开启 2.局部使用事务 一、锁 1.行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在事务里面,至于如何开启事务,我们看下面的事务一节。 返回一个 阅读全文
posted @ 2020-12-17 20:17 catgatp 阅读(568) 评论(0) 推荐(0) 编辑
摘要: Django Channels 官方文档 https://channels.readthedocs.io/en/latest/index.html 前言: 最近课程设计需要用到 WebSocket,而原生的 Django 又不支持 WebSocket,仅有 Django Channels 库支持 W 阅读全文
posted @ 2020-12-11 20:38 catgatp 阅读(1758) 评论(1) 推荐(1) 编辑
摘要: 复习 """ 视图家族 1、视图类:APIView、GenericAPIView APIView:作为drf的基础view;as_view()禁用csrf;dispatch()二次封装request、三大认证、解析、渲染、响应、异常等模块;一堆类属性,可以用来做全局或局部插拔配置 GenericAP 阅读全文
posted @ 2020-10-13 22:07 catgatp 阅读(749) 评论(0) 推荐(0) 编辑
摘要: model.py class SysPermission(models.Model): id = models.CharField(db_column='Id', primary_key=True, max_length=50) # Field name made lowercase. parent 阅读全文
posted @ 2020-10-10 21:04 catgatp 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 要用django的orm表达sql的exists子查询,需要做两部来完成 from django.db.models import Exists, OuterRef # 1. 定义子查询条件 relative_comments = Comment.objects.filter( post=Outer 阅读全文
posted @ 2020-08-31 20:22 catgatp 阅读(1650) 评论(0) 推荐(1) 编辑
摘要: 我最近在2019年欧洲Django大会(https://2019.djangocon.eu/ )上发表了一场关于Django ORM的演讲。在这次演讲中,我展示了使用Django ORM进行复杂查询时可以使用的各种技术。这篇文章将部分总结这次演讲,但我也会扩展和添加我无法在30分钟内完成的额外的内容 阅读全文
posted @ 2020-08-15 13:40 catgatp 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 原始SQl语句: select ip, group_concat(id) as id from whitelist group by ip; 方法一: Django-ORM实现: 1、创建Concat类: from django.db.models import Aggregate, CharFie 阅读全文
posted @ 2020-08-10 19:59 catgatp 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: django报错: /usr/local/lib/python2.7/dist-packages/Django-1.8.2-py2.7.egg/django/db/models/fields/init.py:1474: RuntimeWarning: DateTimeField Org.update 阅读全文
posted @ 2020-06-22 21:03 catgatp 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 在企业实际开发中,有时数据库会存UTC时间,要求不同地区的人访问可以智能识别国家,显示当地时间,下面用的是moment.js转化时间。 下载地址:https://momentjs.com/ js 转化: //初始化日期(utc->local) function dateFormatter(value 阅读全文
posted @ 2020-06-22 20:22 catgatp 阅读(3000) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示