• 关于uni-app与vue路由配置的不同,不使用uni.navigateTo接口跳转时,使用this.$router.push的踩坑经验


          

    目录

    懵逼的一个小时   

    uni-app与vue路由配置的不同

    非官方接口的另类写法

    错误编写:

    正确编写(只需写父组件即可,其他是多余):


    懵逼的一个小时   

            之前用vue写router路由的时候,先配置一个路由表,然后再将配好的路由push到已有的组件里面,再通过方法将每一个调用的路由的内容渲染到父组件要用的位置。

    今晚我在用uni-app的时候,突然不想用uni-app自己提供的路由跳转方法:

    uni.navigateTo

    我想用vue那种路由的跳转方式,我一开始想了想应该是可以的,毕竟uni-app的内核也是vue.js框架。所以,我开始安装第三方vue-router、配置main.js、创建router路由表配置页面路由等。

    等我一顿操作后,我发现,wc!不太对,和vue不太一样。点击跳转的时候路径动,但是内容是不刷新的,一般遇到这种情况,在vue是父组件调用子组件是,父组件没有加:

    <RouterView>RouterView>

    导致的,但是我想:"我明明在父组件中加上了啊,为什么不行。"我有重新了一遍项目,还是不行。

    uni-app与vue路由配置的不同

    经过一个多小时后,我终于发现了问题:(uni-app与vue路由的不同)

    1. vue中只针对PC端而言,他的没有pages.json文件中所以不会自动定义此项目的路由的,所以,当我们用vue写路由时,要有手写路由表的这一重要步骤。
    2. uni-app是一款兼容流生态,虽然用的是vue框架的内核,但是配置路由却与vue不一样。因为uni-app中有pages.json的存在,它在创建每一个vue页面时都可以在pages.json中配置创建的vue页面路径。
    3. uni-app正因为有pages.json文件的存在,所以我们可以通过官方提供的uni.navigateTo等uniAPI接口去实现路由的跳转。

    非官方接口的另类写法

    如果不想用3.说的官方提供的api接口去实现跳转的话,我们可以直接使用this.$router.push实现路由的跳转,uni-app中使用它不会像vue中那么繁琐,它不需要开发者手动配置路由表。

    错误编写:

    父组件中:

    1. index() {
    2. this.$router.push('/index');
    3. },

    main.js中:

    1. import App from './App'
    2. import ElementUI from 'element-ui';
    3. import 'element-ui/lib/theme-chalk/index.css';
    4. Vue.use(ElementUI)
    5. import Vue from 'vue'
    6. import router from './router'
    7. Vue.config.productionTip = false
    8. App.mpType = 'app'
    9. const app = new Vue({
    10. ...App,
    11. router
    12. })
    13. app.$mount()

    router/index.js中:

    1. import Vue from 'vue'
    2. import Router from 'vue-router'
    3. import index from '@/pages/houtai/index/index'
    4. import Administrator from '@/pages/houtai/Administrator/Administrator'
    5. import announcement from '@/pages/houtai/announcement/announcement'
    6. import equipment from '@/pages/houtai/equipment/equipment'
    7. import personal_center from '@/pages/houtai/personal_center/personal_center'
    8. import user from '@/pages/houtai/user/user'
    9. import worker from '@/pages/houtai/worker/worker'
    10. Vue.use(Router)
    11. export default new Router({
    12. routes: [{
    13. path: '/index',
    14. component: index,
    15. },
    16. {
    17. path: '/Administrator',
    18. component: Administrator
    19. },
    20. {
    21. path: '/announcement',
    22. component: announcement
    23. },
    24. {
    25. path: '/equipment',
    26. component: equipment
    27. },
    28. {
    29. path: '/personal_center',
    30. component: personal_center
    31. },
    32. {
    33. path: '/user',
    34. component: user
    35. },
    36. {
    37. path: '/worker',
    38. component: worker
    39. }
    40. ]
    41. })

    正确编写(只需写父组件即可,其他是多余):

    父组件中:

    说明:因为uni-app的所有的页面路由都给我配置到了pages.json文件中,所有我们没有必要再去手动写一遍路由表,我们直接用this.$router.push方法push到我们的页面的具体的路径就可以!

    1. // 跳转首页
    2. index() {
    3. this.$router.push('/pages/houtai/index/index');
    4. },
    5. // 跳转个人中心
    6. personal_center() {
    7. this.$router.push('/pages/houtai/personal_center/personal_center');
    8. },
    9. // 跳转公告管理
    10. announcement() {
    11. this.$router.push('/pages/houtai/announcement/announcement');
    12. },
    13. // 跳转工作人员管理
    14. worker() {
    15. this.$router.push('/pages/houtai/worker/worker');
    16. },
    17. // 跳转用户信息管理
    18. user() {
    19. this.$router.push('/pages/houtai/user/user');
    20. },
    21. // 跳转馆内设备管理
    22. equipment() {
    23. this.$router.push('/pages/houtai/equipment/equipment');
    24. },
    25. // 跳转管理员管理
    26. Administrator() {
    27. this.$router.push('/pages/houtai/Administrator/Administrator');

  • 相关阅读:
    造车新势力“蔚小理”变弱了?不,他们已走过幼年期
    SSM-SpringMVC-day1 SpringMVC的入门案例、使用PostMan工具发送请求和数据、SpringMVC如何接收请求、数据和响应结果
    【元宇宙】未来已来,细节之中恰恰蕴藏着颠覆性的力量
    part_two:多媒体软硬件平台技术
    基于工业5G网关的工业机器人监测控制方案
    【深度学习前沿应用】图像分类Fine-Tuning
    Android设置应用图标
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生宿舍管理信息系统3x4rz
    什么是子网掩码?
    Qt开发经验小技巧241-245
  • 原文地址:https://blog.csdn.net/lbcyllqj/article/details/131148081