router.js 873 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * 路由对象
  3. * 中心思想:需要路由鉴权,由于uni-app没有vue中的全局钩子函数,所以封装了Router对象。
  4. * 说明:应用中的路由跳转尽量使用该Router的方法,并配合config中的路由表对象进行跳转。
  5. *
  6. * 示例:this.$mRouter.push({route:this.$mRoutesConfig.main,query:{a:1}})
  7. *
  8. */
  9. class Router {
  10. constructor() {
  11. this.callBack = () => {};
  12. }
  13. beforeEach(callBack) {
  14. if (callBack instanceof Function) this.callBack = callBack;
  15. }
  16. push(to) {
  17. this.callBack('navigateTo', to);
  18. }
  19. redirectTo(to) {
  20. this.callBack('redirectTo', to);
  21. }
  22. reLaunch(to) {
  23. this.callBack('reLaunch', to);
  24. }
  25. switchTab(to) {
  26. this.callBack('switchTab', to);
  27. }
  28. back(delta) {
  29. // #ifdef H5
  30. history.back();
  31. // #endif
  32. // #ifndef H5
  33. uni.navigateBack({
  34. delta
  35. });
  36. // #endif
  37. }
  38. }
  39. export default new Router();