Vue3的router和Vuex的学习条记整理

打印 上一主题 下一主题

主题 1524|帖子 1524|积分 4572

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、路由的基本搭建

1、安装

  1. npm install vue-router --registry=https://registry.npmmirror.com
复制代码


2、配置路由模块

第一步:src/router/index.js创建文件
第二步:在src/view下面创建两个vue文件,一个叫Home.vue和About.vue
第三步:配置src/router/index.js文件

  1. import Home from '../view/Home.vue'
  2. import About from '../view/About.vue'
  3. import { createRouter, createWebHistory } from 'vue-router'
  4. const routes = [
  5.     {
  6.         path: '/',
  7.         component: Home
  8.     },
  9.     {
  10.         path: '/about',
  11.         component: About
  12.     }å
  13. ]
  14. const router = createRouter({
  15.     history: createWebHistory(),
  16.     routes
  17. })
  18. export default routes
复制代码

3、main引入


  1. import { createApp } from 'vue'
  2. import './style.css'
  3. import App from './App.vue'
  4. import router from './router/index'
  5. createApp(App).use(router).mount('#app')
复制代码

 4、使用路由

在App.vue文件中使用

  1. <template>
  2.   <div>
  3.     <router-view></router-view>
  4.   </div>
  5. </template>
复制代码

5、页面按钮切换路由(一级路由)

路由组件<router-link to="/"></router-link>

  1. <template>
  2.   <div>
  3.     <router-link to="/">首页</router-link>|
  4.     <router-link to="/about">about</router-link>
  5.     <router-view></router-view>
  6.   </div>
  7. </template>
  8. <script setup>
  9. </script>
  10. <style scoped>
  11. </style>
复制代码

6、页面按钮切换路由(二级路由) 

 第一步:新建两个页面,一个Foo.vue和Bar.vue;
第二步:src/router/index.js文件里引入且配置

  1. import Home from '../view/Home.vue'
  2. import About from '../view/About.vue'
  3. import Bar from '../view/Bar.vue'
  4. import Foo from '../view/Foo.vue'
  5. import { createRouter, createWebHistory } from 'vue-router'
  6. const routes = [
  7.     {
  8.         path: '/',
  9.         component: Home
  10.     },
  11.     {
  12.         path: '/about',
  13.         component: About,
  14.         children: [
  15.             {
  16.                 path: 'foo',
  17.                 component: Foo,
  18.             },
  19.             {
  20.                 path: 'bar',
  21.                 component: Bar,
  22.             }
  23.         ]
  24.     }
  25. ]
  26. const router = createRouter({
  27.     history: createWebHistory(),
  28.     routes
  29. })
  30. export default router
复制代码
第三步:在About.vue文件中配置二级路由和跳转

  1. <template>
  2.     <div>
  3.         AboutViewı
  4.         <div>
  5.             <router-link to="/about/foo">foo</router-link>|
  6.             <router-link to="/about/bar">bar</router-link>
  7.         </div>
  8.         <router-view></router-view>
  9.     </div>
  10. </template>
  11. <script>
  12.     export default {
  13.         name: 'AboutView'
  14.     }
  15. </script>
  16. <style scoped>
  17. </style>
复制代码

二、动态路由模式

 1、第一步:将foo的path改成/:id


2、第二步:修改about.vue跳转路由


3、第三步:可以在foo.vue文件内拿到动态路由通报过来的值

  1. $route.params.id
复制代码

三、编程路由模式

1、路由跳转代码:this.$router.push('地址')



四、定名路由

注意:除了path外,还可以为任何路由提供name
优点
1、没有硬编码的URL
2、params的自动编码/解码
3、防止在url中出现打字错误
1、在router.js中给路由添加name属性 


2、将router-link的to写成动态传值模式

 


五、定名视图

有时候想同时(同级)展示多个视图,而不是嵌套展示 

六、路由原信息 

注意:有时,可能希望将任何信息附加到路由上,如过度名称、谁可以访问路由等。这些事变可以通过担当属性对象的meta属性来实现。 

怎样拿到meta内的值?
 


七、路由传参 

1、query方式(显示)

一、通过连接方式通报

 

 

结果:
 

二、通过name方式通报


2、params方式(显示)动态路由


3、params方式(隐式)

注意:点击刷新时,通报数据会消散



八、route对象和router对象


1、 route对象

 注意:route是进行获取操纵,对当前路由进行操纵
2、router对象

 注意:route是进行设置操纵, 对所有路由进行方法的聚集

 九、路由守卫

注意:提供的导航守卫重要用来通过跳转或取消的方式守卫导航,守卫重要有全局的,单个路由独享的,大概组件级的。
to:跳转到哪一个url
form:从哪一个url来的
next:决定进入到文件内,还是跳转到其他组件
1、全局路由守卫


 2、单个路由独享守卫



3、 组件级守卫

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表