当前位置: 首页 > news >正文

com都有哪些网站wordpress获取用户信息

com都有哪些网站,wordpress获取用户信息,wordpress首页位置,网站重构★推荐方案#xff1a;使用 events npm库#xff1b; 可用范围#xff1a;vue、react、angular等任何框架都可使用#xff1b;且使用方式完全一致#xff1b; 本文仅介绍、讲解对web页面端项目的常用API#xff1b;通过events实现事件总线功能#xff1b; event库概述使用 events npm库 可用范围vue、react、angular等任何框架都可使用且使用方式完全一致 本文仅介绍、讲解对web页面端项目的常用API通过events实现事件总线功能 event库概述本次所使用到的库为通用库若在node环境使用则无需npm安装本身自带的浏览器环境下使用才需要npm安装。 events库是从 Node.js 上移植Events模块的功能因此可用的API完全一致除了仅限在node环境下使用的API 若想进一步深入去看node官网的event文档即可。注意版本差异根据npm文档的描述该库目前并未同步最新Node里对应的events模块 在VUE3的官方文档中描述到【平级组件或是跨越多层嵌套的组件间通信应使用一个外部的事件总线或是使用一个全局状态管理方案】。全局状态管理就则是像pinia这种本文就主要讲述事件总线; VUE2的话直接用官方API提供的即可当然如果vue2的相关API实现的事件总线不满足需求那自然也是推荐使用events库的 events库使用方式 1、安装 npm install events 2、引入使用、封装 import { EventEmitter } from events;// 大家根据各自业务需求自行封装对应风格的事件总线模块 export const emitter new EventEmitter();// 创建多个事件总线互不干扰。 export const emitter2 new EventEmitter(); 这样我们就创建好了一个简单的事件总线实例也可以创建多个事件总线 3、注册监听器eventEmitter.on() 与监听函数的this指向 类型on(eventName: string | symbol, listener: (...args: any[]) void): this; 别名emitter.addListener(eventName, listener) import { emitter,emitter2 } from /utils/events// 可接收多个参数若emit触发该监听函数时未传参则是undefined// 第一个参数类型eventName: string | symbol// 第二个参数类型 listener: (...args: any[]) voidemitter.on(test1,function (val,val2,val3){console.log(val,val2,val3,可接受多个参数);console.log(this,该this指向为emitter实例若监听函数为箭头函数则该处this指向不用我解释了吧这是基础啊);})emitter.on(test1,function (){console.log(可多次注册同名的test1监听函数注意事项看 《7、监听数量相关内容》 );})// 按上一步所示不同事件总线实例创建监听器时eventName同名也不会互相影响emitter2.on(test1,(val){console.log(val);})function emitTest() { // 标准写法这样才可off卸载监听函数上面2个例子只是展示功能作用console.log(葬送的芙莉莲);}emitter.on(emitTest,emitTest)emitter.off(emitTest,emitTest) 另外EventEmitter 按照注册的顺序同步地调用所有监听器。 这确保了事件的正确排序并有助于避免竞争条件和逻辑错误。  4、触发监听器事件eventEmitter.emit() emit类型为emit(eventName: string | symbol, ...args: any[]): boolean; 下面代码中的 emitter.emit(test1,1,向监听的函数传入多个参数)  表示触发所有 test1 的监听函数并传入后面那2个参数。 返回值如果事件有监听器则返回 true否则返回 false。 import { emitter,emitter2 } from /utils/eventsemitter.emit(test1,1,向监听的函数传入多个参数)emitter2.emit(test1,来自 emitter2 的问候.)// boolean返回值表示未触发该监听函数下面两个emit返回的结果都是falseconst has emitter2.emit(emitTest,返回false) // 就算on创建过监听函数off后此时触发不到也是返回falseconst has2 emitter2.emit(test666,返回false) 5、仅触发一次监听器事件eventEmitter.once()  类型once(eventName: string | symbol, listener: (...args: any[]) void): this; 使用 eventEmitter.once() 方法可以注册一个监听器该监听器最多为特定事件调用一次。 一旦事件被触发则监听器就会 先被注销 然后再调用该监听函数。 import { emitter,emitter2 } from /utils/eventslet countt 0emitter.once(test2,function () {counttconsole.log(countt);}) import { emitter } from /utils/eventsfunction demo (){let has emitter.emit(test2)console.log(has); } demo(); // 第一次Log是trueemit.once执行一次后就会销毁 demo(); // 销毁后再执行自然是找不到该监听函数的所以返回false 6、卸载/销毁 监听器    emitter.off() 类型off(eventName: string | symbol, listener: (...args: any[]) void): this; 别名emitter.removeListener() 从名为 eventName 的事件的监听器数组中移除指定的 listener。 on、once创建的监听器都可用off销毁 import { emitter } from /utils/eventsfunction emitTest() {console.log(葬送的芙莉莲);}emitter.on(emitTest,emitTest)emitter.off(emitTest,emitTest) 6、监听EventEmitter的 on、off 事件 import { EventEmitter } from events;export const emitter new EventEmitter(); // 在将监听器添加到其内部监听器数组之前EventEmitter 实例将触发自身的 newListener 事件。 // 以此来监听 事件总线 的添加事件 emitter.on(newListener, (eventName, listener) {console.log(eventName, listener,这是添加); }); // 同理监听删除事件 emitter.on(removeListener, (eventName, listener) {console.log(eventName, listener,这是删除); }); 7、监听数量相关内容 默认监听同一事件名的最大数量为10若是注册超过10个以上则会抛出警告。 emitter.getMaxListeners() 获取emitter事件总线实例可注册监听器同一事件名的最大数量默认为10 通过emitter.setMaxListeners(8) 来更改限制传入Infinity或 0则表示不限制【虽然即使限制了但超出也只是抛出警告还是会正常注册该监听函数。抛警告是便于防止内存泄漏问题】另外setMaxListeners跟defaultMaxListeners无关setMaxListeners 修改了并不会更改 defaultMaxListeners 简单来说就是2个属性名set修改的是 _maxListeners 属性值该属性有值时以 _maxListeners 为优先没值则是 emitter.defaultMaxListeners 返回默认监听最大数量但好像没啥用返回undefined用getMaxListeners则能拿到官方说的10。 官方说defaultMaxListeners不要更改不然会影响所有实例。虽然我验证了下改了也没用但官方说啥就是啥你别改就完事了而且改这个属性也是不规范的做法。 import { EventEmitter } from events; export const emitter new EventEmitter();console.log(emitter.defaultMaxListeners);// emitter.setMaxListeners(3)console.log(emitter.getMaxListeners());emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo) // 默认10个此时再注册则会报warn提醒你emitter.on(ceshi1,demo) 8、eventNames返回事件总线里已注册了的所有监听器事件名(eventName)。 类型eventNames(): Arraystring | symbol; 多次同名注册的也只返回一个eventName给数组。 查看某监听器事件名注册次数看下面的内容 9。 import { emitter } from /utils/events console.log(emitter.eventNames()) 9、listenerCount获取监听名为 eventName 的事件的监听器数量。 类型listenerCount(eventName: string | symbol): number; import { EventEmitter } from events; export const emitter new EventEmitter();emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)emitter.on(ceshi1,demo)console.log(emitter.listenerCount(ceshi1)); // log: 3
http://www.pierceye.com/news/591251/

相关文章:

  • 建投五公司网站找苏州网站建设
  • 徐州IT兼职网站开发中国做陶壶的网站有哪些
  • WordPress模板转换typecho郑州搜索引擎优化
  • 个人怎么做贷款网站什么是网络营销产品
  • 网站你的后台管理系统用什么做外包公司与劳务派遣区别
  • 设计师资源网站价格低油耗低的车
  • 中山快速做网站服务wordpress建站ftp
  • 做酒类直供网站行吗网站seo检测报告
  • 南昌建站费用网站建设出错1004
  • 十堰做网站的公司阿里巴巴外贸网站论坛
  • 品牌网站建设代理网站建设公司易下拉软件
  • 移动网站模板响应式网站开发教程pdf
  • 怎么设计网站内容小程序seo帝搜软件sem880官网
  • 十堰秦楚网 十堰新闻门户网站wordpress 点赞 开启
  • 做外贸网站需要注意些什么手续安阳吧贴吧
  • 国外申请域名的网站百度标记号码认证平台
  • 专门做淘宝代运营的网站支付建设网站的费用什么科目
  • 天津企业设计网站建设建个网站做外贸
  • 申请永久网站空间wordpress论坛采集
  • 网站如何做竞价佛山新网站建设机构
  • 网站建设费可以一次性冲费用吗学校门户网站作用
  • 手机上怎么制作网站音乐网站如何建立
  • 新乡企业网站建设公司寮步东莞网站建设
  • wordpress中国网站排名如何加入广告联盟赚钱
  • 济宁网站建设培训学校wordpress导入表单
  • 做农产品交易网站阿里云已备案域名购买
  • 免费建站网站一级大录像不卡谁给我一个企业邮箱认证
  • 中国做网站东台做网站公司
  • 建设数据库网站需要哪些设备wordpress多功能主题 cosy
  • 苏州市郭巷建设局网站一家专门做鞋子的网站