路由组件
解决问题
1、微信路由功能增强,增加了路由的全局钩子,beforeRoute(跳转前),afterRoute(跳转后)
2、代码解耦,路由配置(router-config.js),路由钩子处理(router-control.js),页面路由方法调用,全部拆解开
快速开始
1、拷贝 dist/下的router目录,到项目的根目录(推荐)
2、修改路由配置文件router-config.js,添加页面路由项目 例如:
let routes = [{
path: "/pages/home/index/index",
meta: {
title: "商品首页",
verifyLogin: true,
}
},
{
path: "/pages/home/detail/detail",
meta: {
title: "商品详情"
}
}]
module.exports = routes
3、修改router-control.js,定义全局钩子(不需要的话,也可以暂时不用修改)
let beforeRoute = function(to,from,next){
if(to.meta && to.meta.verifyLogin){
console.log('login')
next(false)
}
else{
next()
}
}
let afterRoute = function(to,from){
console.log('从' + from.path + '到' + to.path + '跳转成功!')
}
4、 app.js中引入
const router = require('./router/router-control')
onLaunch(){
this.router = router.init(this)
}
5、页面中使用路由方法, 例如:
app.router.navigateTo({
path: "/pages/home/index/index",
complete(){
console.log('complete myself!')
},
params: {
orderId: '111'
},
meta:{
verifyLogin:false
}
});
路由方法,和微信的官方方法保持一致,效果也是一致的
1、navigateTo 参数 option
app.router.navigateTo(option)
2、navigateBack 参数 option
app.router.navigateBack(option)
3、redirectTo 参数 option
app.router.redirectTo(option)
4、reLaunch 参数 option
app.router.reLaunch(option)
5、switchTab 参数 option
app.router.switchTab(option)