// Vue.js 的插件应该暴露一个 install 方法。这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象
let _Vue = null
export default class VueRouter {
// 静态方法, 注意参数是 Vue构造器
static install(Vue){
// 1. 判断是否已经被注册过(单例模式)
if(VueRouter.install.installed){
return
}
VueRouter.install.installed = true
// 2. 将 Vue 构造器 放到全局环境,以后给其他功能用
_Vue = Vue
// 3. 将 Vue 实例化时 传入的 router 对象注入到每一个 vue 实例上
_Vue.mixin({
beforeCreate () {
if(this.$options.router){
_Vue.prototype.$router = this.$options.router
this.$options.router.init(Vue)
}
}
})
}
constructor(options){
this.options = options
this.routeMap = {
}
// data 保存当前应用路由, 必须是响应式的,才能让视图自动响应渲染
Vue 自定义hash Router
最新推荐文章于 2023-08-22 14:17:50 发布