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

Vue.js组件开发-路由与视图切换

在Vue.js中,路由与视图切换是通过Vue Router来实现。Vue Router提供了声明式的路由配置、嵌套路由、动态路由匹配、路由参数、路由守卫等功能。

基本概念


路由‌:定义URL路径和组件之间的映射关系。
视图‌:与特定路由相关联的组件,当用户访问某个路由时,对应的视图组件会被渲染到页面上。

使用步骤

‌1、安装Vue Router‌:


如果还没有安装Vue Router,可以通过npm或yarn来安装。

npm install vue-router@4

或者

yarn add vue-router@4

‌2、创建路由实例‌:


定义一个路由实例,并配置路由规则。这些规则指定了URL路径和组件之间的映射关系。

import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

3、在Vue应用中使用路由‌:


将路由实例注入到Vue应用中。

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

const app = createApp(App);
app.use(router);
app.mount('#app');

4、在组件中使用路由‌:


使用<router-link>组件来实现导航,<router-view>组件来展示当前路由对应的视图。

<template>
  <div id="app">
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view/>
  </div>
</template>

高级功能

‌路由守卫‌:

可以在路由切换前或切换后进行一些操作,如权限验证、页面跳转等。

router.beforeEach((to, from, next) => {
  // 权限验证逻辑
  if (to.meta.requiresAuth && !isUserLoggedIn()) {
    next('/login');
  } else {
    next();
  }
});

‌嵌套路由‌:

可以在路由配置中定义嵌套路由,使得子路径自动继承父路由的配置。

const routes = [
  {
    path: '/parent',
    component: ParentComponent,
    children: [
      { path: 'child', component: ChildComponent }
    ]
  }
];

动态路由匹配‌:

对于动态路径参数,可以在路由配置中使用冒号:来定义。

const routes = [
  { path: '/user/:id', component: User }
];

编程式导航‌:

除了使用<router-link>组件进行声明式导航外,还可以使用Vue Router提供的编程式导航API来动态控制路由。

this.$router.push({ name: 'user', params: { id: 123 } });

http://www.kler.cn/a/450079.html

相关文章:

  • mysql 查询优化之字段建立全文索引
  • Java代码覆盖率super-jacoco
  • 重温设计模式--中介者模式
  • VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
  • esp8266_TFTST7735语音识别UI界面虚拟小助手
  • C++---------随机库,standfor库
  • web-密码安全口令
  • Java内存区域进一步详解
  • Android 11添加电容笔电量监测需求
  • 学习threejs,THREE.PlaneGeometry 二维平面几何体
  • 解锁 GitBook 的奥秘:从入门到精通之旅
  • 2024年12月19日Github流行趋势
  • 静态路由与动态路由
  • 【ALGC】探秘 ALGC—— 卓越数据处理能力的科技瑰宝
  • 乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级
  • NIPS2014 | GAN: 生成对抗网络
  • 基于GEE云计算、多源遥感、高光谱遥感技术蓝碳储量估算;红树林植被指数计算及提取
  • DevEco Studio支持鸿蒙应用的全生命周期开发
  • Android Recovery 常见问题整理与解决办法
  • 在Vue3中实现文件上传功能,结合后端API
  • 解决Spring Boot中跨域和请求参数处理问题
  • 第四节:GLM-4v-9b模型的tokenizer源码解读
  • T527-----音频调试
  • python怎么取消多行缩进
  • Microi吾码|开源低代码.NET、VUE低代码项目,表单引擎介绍
  • Qt Widgets、QML与Qt Quick