Vue学习(路由定义、路由传参方式、子路由)-学习笔记

小鱼儿 2023-01-23 10:57 81阅读 0赞

文章目录

    • Vue学习(路由定义、路由传参方式、子路由)-学习笔记
      • 路由定义(见下单个文件)
      • 路由传参方式
      • 二级路由
      • 动态面包屑路由组件
      • 路由中的props属性(了解)
      • 路由拦截

Vue学习(路由定义、路由传参方式、子路由)-学习笔记

路由定义(见下单个文件)

  1. //Vue中main.js文件
  2. import Vue from 'vue'
  3. import App from './App.vue'
  4. import router from './router' //从这里引入路由
  5. import store from './store'
  6. import './assets/font/iconfont.css' //字体图标
  7. import 'bootstrap/dist/css/bootstrap.css'
  8. Vue.config.productionTip = false
  9. new Vue({
  10. router, //加载
  11. store,
  12. render: h => h(App)
  13. }).$mount('#app')

路由传参方式

用单个文件来理解:(重要)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>vue-router</title>
  5. <script src="vue.js"></script>
  6. <script src="vue-router.js"></script>
  7. <style> .active { color: #f60; } </style>
  8. <script> //$route 对象 $route.params query path name meta //$router 为vueRouter实例 $router.push() // 1、定义组件 var Home = { template: '#home' } var News = { template: '#news' } //2、配置路由 const routes = [ { path: '/home/:id',name: 'home', component: Home}, // params方式传参数,path中需要定义参数 // query方式不需要传参 { path: '/news', component: News}, { path: '/', redirect: '/home'} //重定向 {path: '/*', redirect: '/home'} //重定向 ]; // 3. 创建 router 实例,然后传 `routes` 配置 const router = new VueRouter({ routes,//routes:routes linkActiveClass: 'active' }); window.onload=function(){ // 4. 创建和挂载根实例。 new Vue({ el:'#my', router, //router实例注入到vue实例中 data:{ id:999 } }); } </script>
  9. </head>
  10. <template id="home">
  11. <div>
  12. <!-- 获取路由参数的方式 params { {$route.params.id}}-->
  13. <h3>组件home --{
  14. {$route.params.id}}</h3>
  15. </div>
  16. </template>
  17. <template id="news">
  18. <div>
  19. <!-- 获取路由参数的方式 query { {$route.query.id}}-->
  20. <h3>组件news =={
  21. {$route.query.id}}</h3>
  22. </div>
  23. </template>
  24. <body>
  25. <div id="my">
  26. <!-- router-link 跳转 <a href="#/home" class="">home</a> to 属性指定链接-->
  27. <!-- 路由传参的方式有二种 params:/home/1/a/2 query:/home?id=1&name=2&psd=123-->
  28. <!-- <router-link to="/home/100">home</router-link> -->
  29. <!-- <router-link :to="'/home/'+id">home</router-link> -->
  30. <router-link :to="{name: 'home', params: { id: id}}">home</router-link>
  31. <!-- <router-link to="/news?id=1234">news</router-link> -->
  32. <router-link :to="{path: '/news', query: {id: 5678}}">home</router-link>
  33. <!-- <button @click="goBack()">12</button> -->
  34. <div>
  35. <!-- 路由出口 路由匹配到的组件渲染在这里 -->
  36. <router-view></router-view>
  37. </div>
  38. </div>
  39. </body>
  40. </html>
  41. <!-- Vue-详解设置路由导航的两种方法: <router-link :to="..."> 和router.push(...) //声明式 <router-link :to="..."> //编程式 router.push(...) // 声明式的常见方式 <router-link to="/home">home</router-link> // 对象 <router-link :to="{path:'/home'}">home</router-link> // 路由通过名称 <router-link :to="{name: 'homename'}">home</router-link> //直接路由带查询参数query,地址栏变成 /home?id=10 <router-link :to="{path: 'home', query: {id: 10 }}">home</router-link> // 命名路由带查询参数query,地址栏变成/home?id=10 <router-link :to="{name: 'homename', query: {id: 10 }}">home</router-link> //直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略 <router-link :to="{path: 'home', params: { id: 10 }}">home</router-link> // 命名路由带路由参数params,地址栏是/home/10 <router-link :to="{name: 'homename', params: { id: 10 }}">home</router-link> 二、router.push(...)方法 // 字符串 router.push('/home') // 对象 router.push({path:'/home'}) // 路由通过名称 router.push({name: 'homename'}) //直接路由带查询参数query,地址栏变成 /home?id=10 router.push({path: 'home', query: {id: 10 }}) // 命名路由带查询参数query,地址栏变成/home?id=10 router.push({name: 'homename', query: {id: 10 }}) //直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略 router.push({path:'homename', params:{ id: 10 }}) // 命名路由带路由参数params,地址栏是/home/10 router.push({name:'homename', params:{ id: 10 }}) -->

二级路由

可见代码:https://gitee.com/monkeyhlj/vue-learning

动态面包屑路由组件

在这里插入图片描述
在这里插入图片描述

路由中的props属性(了解)

在这里插入图片描述
props里面可写函数,比较灵活。
在这里插入图片描述

路由拦截

常应用于登录–判断用户是否登录过—>本地存储——->首页
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue

    前言 之前,查了其他博客,总结一篇,发现貌似不对??,因此又查了一遍好不容易写了出来。 1.query传参 一种是,这样滴。 // 跳转 thi

    相关 vue-03--

    和平时的页面跳转一样,我们可能需要在地址栏上传递某些参数,例如,从商品列表页面,跳转的某个商品的详情页面,这个时候,如果是页面跳转的时候,我们会直接在url上跟上一个商品id,

    相关 Vue跳转+

    之前在原生JS的开发中,我们经常会用到根据某一状态进行页面的跳转。 比如:登录成功跳到首页,点击商品列表的某个商品跳转商品详情等。 而常见的写法就是: locat