在3.0时代,如果你的项目没有要兼容IE的需求。(现在政府很多网站都不兼容IE了,醒醒吧,现在只会IE8的基本只会微信打视频,连支付功能都不会用的)
3.0 很多功能都百花齐放中。
特别是Setup的js编写模式 真香。
少写N多前置代码和简单引入,唯一不足就是在webStrom 不能像2.0 有一个name 属性可以快捷import 模板。
针对3.0 更新后。使用新特性,改写事件的封装模式。
新增setup下的
- 侦听模式。
- 自动卸载侦听数据。
事件模式思想下面链接有简单介绍。
旧版的事件侦听获取必须在模板里面记录各种回调信息。
在setep下 有几种加载侦听方式。
一个在初始化时候就加载
一个在onMounted 加载
只能选其一进行加载处理,不然会重复事件抛出。
如果在初始化时候加载事件侦听,在侦听下直接进行事件抛出就可以获得数据。
const hookDispatcher = HookDispatcher();
hookDispatcher.addEvent(GroupEvent.DEMO_GET_EVENT, function (e) {
console.log("获取数据")
console.log(e)
})
hookDispatcher.dispatch(GroupEvent.DEMO_GET_EVENT,"我是你爹")
GroupDispatcher.dispatch(GroupEvent.DEMO_GET_EVENT,"说一句话啊")
打印出来
如果在onMounted加载事件侦听,只能等页面初始化完成才能获取数据。
const hookDispatcher = HookDispatcher();
hookDispatcher.addEvent(GroupEvent.DEMO_GET_EVENT, function (e) {
console.log("获取数据")
console.log(e)
})
onMounted(()=>{
hookDispatcher.dispatch(GroupEvent.DEMO_GET_EVENT,"我是你爹 onMounted")
GroupDispatcher.dispatch(GroupEvent.DEMO_GET_EVENT,"说一句话啊 onMounted")
})
打印出来
主要看业务进行选择初始化的情况。
测试使用的页面代码
─login
│ GroupDispatcher.ts
│ GroupEvent.ts
│ HookDispatcher.ts
│ loginIndex.vue