A simple, lightweight 'uni-app' routing plugin
JavaScript
,调整为安全使用 typescript:4.0.3
重构。新版完全靠近 【vue-router-next】API
,同时也阉割掉了部分用处较少的API
。【详细见】URL
传参得到了很好的解决,由手动选择encodeURI
模式调整为auto
。这意味着用户可随意放肆的传参!$Route
及 next
管道函数同时新增 NAVTYPE
、fullPath
。uni
原生方法的拦截。这意味着使用 uni
原生方法和 Router
实例跳转能达到同样的效果,不仅如此.... APP
端 nvue
页面也可以使用路由拦截。不过需要注意的是 nvue
下 无法使用 beforeRouteLeave
生命钩子,启动页也不能使用 nvue
。routerBeforeEach
、routerAfterEach
、routerErrorEach
、resolveQuery
、parseQuery
、detectBeforeLock
。这标志着开发者能更自由的使用路由核心功能!ios
端 外部链接跳转回来白屏问题 #109
beforeRouteLeave
方法调用一次之后,不再二次触发的问题 #171
vueRouterDev:false
情况下 vue-router 全部功能可用APP
端 tab 拦截后无法自动还原 选中区域,现需要开发者自行设置APP
端 路由构建参数 animation
目前是无效的,可以在跳转方法中设置太多啦,不写啦!后面文档说。。。。
new
关键字到Function
构造// router/index.js
import Vue from 'vue'
import {RouterMount,createRouter} from 'uni-simple-router'
const router = createRouter({
platform: process.env.VUE_APP_PLATFORM,
routes: [...modules]
})
router.beforeEach((to, from, next) => {
next()
})
router.afterEach((to, from) => {
})
Vue.use(router);
export {
router,
RouterMount
}
router
实例挂载。//main.js
import Vue from 'vue'
import App from './App'
import {router,RouterMount} from './router'
App.mpType = 'app'
const app = new Vue({
...App
})
// #ifdef H5
RouterMount(app,router,'#app')
// #endif
// #ifndef H5
app.$mount(); //为了兼容小程序及app端必须这样写才有效果
// #endif
H5
端 vueRouterDev: true
history
模式下刷新后会无限加query (#124)getter
用于处理参数类实例urlQuery.js
快捷参数操作类 可以通过 this.$Router.$parseQuery
获取api
跳转时,当跳转规则为字符串时,参数可以通过 ?
连接app
端 v3
模式可拦截原生tabbar
H5
端 参数传递和获取app
端 plus.nativeObj.View
默认显示调整到 loddingPageHook
生命周期函数下手动执行app
端 init.js
移除 createdHoldTab/uniRewritePublicFun
重写 rewriteUniFun
函数app
端 uniNav.js
移除 pageNavFinish
函数 并重写 uniPushTo
函数app
端 默认配置移除 rewriteFun/holdTabbarStyle
调整 holdTabbar/loddingPageHook
helpers/util.js
移除 queryMp/normalizeParams/strObjToJsonToStr/timeout
函数helpers/applets-patch.js
移除 queryInfo
函数$Router.back()
触发全局守卫 (#113 )navLock
跳转时加锁、防止快速点击多开页面getter
及 setter
beforeRouteLeave
路由守卫 index.js
下的 _pushTo
方法helpers/event.js
index.js
下抽离跳转方法 到 navJump.js
下holdTabbar/rewriteFun
APP端下由 true 调整为 false