当前位置: 首页 > news >正文

vue路由的基本使用

文章目录

        • 1.路由的基本使用
        • 2.路由的默认路径
        • 3.嵌套路由
        • 4.路由懒加载
        • 5.动态路由匹配

1.路由的基本使用
  • 安装 vue-router

    npm install vue-router
    
  • 创建路由文件:
    src 目录下创建 router 目录,并在其中创建 index.js 文件。

  • main.js 中使用 vue-router

    import { createApp } from 'vue';
    import App from './App.vue';
    //导入路由器对象
    import router from './router';
    //使用路由器对象
    createApp(App).use(router).mount('#app');
    
  • 配置路由规则:
    router/index.js 文件中:

    //创建路由器对象,以及管理路由配置·url=>组件
    //1、引入函数
    import { createRouter, createWebHistory } from 'vue-router';//静态导入组件对象
    import Home from '../components/Home';
    import About from '../components/About';
    //配置路由规则
    const routes = [//配置一个具体的路由地址对应的页面{path: '/home',component: Home},{path: '/about',component: About},
    ];//2、创建路由器对象
    const router = createRouter({history: createWebHistory(process.env.BASE_URL),//一组路由规则设置到路由器对象中//routes:routes//如果key和value的值一致,可以简写routes,
    });
    //3.导出router
    export default router;
    
  • 创建 HomeAbout 组件:

    • About.vue:

      <template><div><p class="lead">About内容...</p></div>
      </template><script>export default {name: 'About',};
      </script>
      
    • Home.vue:

      <template><div><p class="lead">Home内容...</p></div>
      </template><script>export default {name: 'Home',};
      </script>
      
  • 编写 App.vue

    <li class="active"><router-link to="/home">Home</router-link></li>
    <li><router-link to="/about">About</router-link></li><!-- 组件内容展示区域 -->
    <router-view></router-view>
    
2.路由的默认路径
{// 路由默认路径path: '/',redirect: '/home'
}
3.嵌套路由
{path: '/home',component: Home,children: [{path: '',component: HomeProduct},{path: 'product',component: HomeProduct},{path: 'ad',component: HomeAd}]
}

注意:子级的 path 不需要加 /

4.路由懒加载
  • 替换 import About from '../components/About' 为:

    component:()=>import("../views/About"),
    

在这里插入图片描述

5.动态路由匹配
  • 带参数的动态路由匹配:

    {path: "/user/:id",component: () => import("../views/User.vue"),name: "user",props: true, // id的值可以作为props属性传递给组件
    },
    
  • 在组件中接收参数:

    props: ["id"], // 定义组件属性,用于接收保存路由对象中的参数值this.user = this.users.filter((item) => {if (item.id == this.id) {return item;}
    });<!-- 每次获取值都需要通过路由对象获取 -->
    编号: {{ $route.params.id }}
    
  1. 404 Not found 路由

    • 新建 NotFound.vue

    • 配置404路由:

      {// 404, 匹配路由映射地址path: "/:pathMatch(.*)*",component: () => import("../views/NotFound.vue"),
      },
      
    • 输出404地址,并跳转页面:

      <h2>没有找到此资源...</h2>
      {{ $route.params.pathMatch }}
      
  2. query方式的参数

    • 第一种方式:字符串拼接

      query传值
      链接地址需要使用字符串模板
      :to = "`xxx=${}`"<router-link :to="`/order/detail?id=${order.id}&username=${order.username}`">{{ order.username }}</router-link>
      

      输出值:

      <h2>编号:{{ $route.query.id }}</h2>
      <h2>姓名:{{ $route.query.username }}</h2>
      
    • 第二种方式:对象写法

      <router-link :to="{// path: '/order/detail',name: 'det',query: {id: order.id,username: order.username}
      }">{{ order.username }}</router-link>
      

http://www.mrgr.cn/news/36434.html

相关文章:

  • 134. 加油站
  • 技能深化与软实力双提升
  • 服务端的 Session 详解
  • 【操作系统】速成3
  • 2024免费录屏软件的宝藏功能与实用技巧
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于CAN总线的气动控制(中)
  • SBB Usage Parameters
  • Android 10.0 Launcher3禁止改变density等系统密度导致布局变化hotseat靠右边显示功能实现
  • Ubuntu下TexMaker发生CTeX fontset `fandol‘ is unavailable问题
  • Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题
  • 四元组问题
  • LeetCode 1979. 找出数组的最大公约数
  • 数据分析:Python语言网络图绘制
  • 【QGIS】软件下载安装及GIS4WRF插件使用
  • 代码编码规范文档(参考)
  • WDM站点类型 -- 波分站点类型
  • LLMs之RAG:MemoRAG(利用其记忆模型来实现对整个数据库的全局理解)的简介、安装和使用方法、案例应用之详细攻略
  • 大觅网之业务部署(Business deployment of Da Mi Network)
  • 【Flask】(推荐项目)使用 Python 和 Kubernetes 进行微服务架构和系统设计
  • 基于Python大数据的B站热门视频的数据分析及可视化系统