简单的路由跳转(router)

简单的路由跳转(router)

语法解释

路由配置

1.导入 Vue Router 的功能:
    import { createRouter, createWebHistory } from 'vue-router'

从 vue-router 包中导入 createRouter 和 createWebHistory 函数。createRouter 用于创建路由实例,而 createWebHistory 用于配置路由历史记录模式(即使用 HTML5 History API)。

2.注册组件:
    import Login from '../components/Login.vue'//组件地址
    import Register from '../components/Register.vue'
    ......

需要把在路由中使用的组件导入进来

3.创建路由规则:
const routes = [
  {
    path: '/login',
    name: 'Login',
    component: Login
  },
  {
    path: '/register',
    name: 'Register',
    component: Register
  },
  // 可以添加重定向
  {
    path: '/',
    redirect: '/login'
  }
]

可以选择定义路由数组来存放将要使用的路由,并制定响应的规则。

path: 定义路由的路径
name: 为该路由指定一个名称,方便在编程式导航时使用。
component: '/XXX' 指明该路由对应的组件是XXX,即用户访问 /XXX 时,会渲染这个组件
redirect: '/XXX' 当用户访问path路径 时,将会被重定向到 /XXX 路径
4.创建路由实例
const router = createRouter({
  history: createWebHistory(),//设置路由历史
  routes//规则数组
})

更多参数信息参考 https://router.vuejs.org/zh/guide/

实现流程:

步骤一:
npm install vue-router@3||4 //3是vue2,4是vue3
步骤二:

src文件夹下创建router文件夹,然后在router文件夹中创建index.js对路由进行配置

import { createRouter, createWebHistory } from 'vue-router'
import Login from '../components/Login.vue' // 你的登录组件路径
import Register from '../components/Register.vue' // 新建的注册组件

const routes = [
  {
    path: '/login',
    name: 'Login',
    component: Login
  },
  {
    path: '/register',
    name: 'Register',
    component: Register
  },
  // 可以添加重定向
  {
    path: '/',
    redirect: '/login'
  }
]

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

export default router
步骤三:

在APP.vue中渲染router-view

<template>
  <div id="app">
    <router-view /> <!-- 只用 router-view 来显示路由组件 -->
  </div>
</template>

<script>
export default {
  name: 'App',
};
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

步骤四:

在main.js中引入并注册路由

import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 引入路由

createApp(App)
  .use(router) // 注册路由
  .mount('#app');
步骤五:

在组件中调用路由进行简单跳转:

const router = useRouter();//声明
...
router.push('/XXX');//使用router进行跳转
Vue 3 中使用哈希模式(Hash Mode)的路由进行页面跳转,可以通过 `vue-router` 提供的 API 来实现。以下是一个完整的示例,包括如何配置哈希模式路由、定义路由规则以及如何进行页面跳转。 ### 安装与配置 首先确保你已经安装了 `vue-router`: ```bash npm install vue-router@4 ``` ### 创建路由实例并配置哈希模式 ```javascript // src/router.js import { createRouter, createWebHashHistory } 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: createWebHashHistory(), routes }) export default router ``` ### 在主应用中使用路由 ```javascript // main.js import { createApp } from 'vue' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app') ``` ### 页面跳转示例 #### 使用 `<router-link>` 组件进行声明式导航 ```vue <template> <div> <router-link to="/">首页</router-link> <router-link to="/about">关于</router-link> </div> </template> ``` #### 使用 `router.push` 进行编程式导航 ```vue <template> <div> <button @click="goToAbout">跳转到关于页面</button> </div> </template> <script> export default { methods: { goToAbout() { this.$router.push('/about') } } } </script> ``` ### 动态路由与懒加载组件 如果你希望按需加载组件(懒加载),可以使用动态导入语法: ```javascript const routes = [ { path: '/user/:id', component: () => import('../views/UserDetails.vue') } ] ``` ### 全局守卫控制导航 你还可以使用全局守卫来控制导航行为,例如验证用户是否已登录: ```javascript router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated()) { next('/login') } else { next() } }) ``` ### 嵌套路由示例 嵌套路由允许你在某个父路由下定义子路由结构: ```javascript const routes = [ { path: '/user/:id', component: UserLayout, children: [ { path: 'profile', component: UserProfile }, { path: 'settings', component: UserSettings } ] } ] ``` ### 获取动态路由参数 在组件中获取动态路由参数(如 `/user/123` 中的 `123`): ```vue <template> <div>User ID: {{ userId }}</div> </template> <script> export default { computed: { userId() { return this.$route.params.id } } } </script> ``` ### NotFound 页面配置 为了处理未匹配的路由,可以添加一个通配符路由: ```javascript const routes = [ { path: '/:pathMatch(.*)*', component: NotFound } ] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值