安装路由库:Vue Router 4

1. 安装 Vue Router 4

npm install vue-router@4
# 或
yarn add vue-router@4

2. 创建路由配置文件

在src目录下创建router文件夹,并在其中创建index.js文件:

import { createRouter, createWebHistory } from 'vue-router'

// 导入需要的组件
import NormalHomePage from '@/pages/NormalHomePage.vue'
import About from '@/pages/About.vue'
import FundRankList from '@/pages/FundRankList.vue'

// 定义路由规则
const routes = [
  {
    // 这是默认路径
    path: '/',
    name: 'NormalHomePage',
    component: NormalHomePage
  },
  {
    path: '/about',
    name: 'About',
    component: About
  },
  {
    path: '/fund-rank-list',
    name: 'FundRankList',
    component: FundRankList,
    props: true // 允许通过路由传递props
  }
]

// 创建路由实例
const router = createRouter({
  // 选择路由模式:hash 或 history
  // createWebHashHistory()  // 使用 hash 模式 (带 # 号)
  history: createWebHistory(process.env.BASE_URL), // 使用 history 模式 (需要后端支持)
  routes
})

// 全局路由守卫(可选)
router.beforeEach((to, from, next) => {
  // 可以在这里添加权限验证等逻辑
  console.log('即将跳转到:', to.name)
  next()
})

export default router

3. 在main.js中配置路由

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
// 导入路由配置
import router from './router'

// 1. 先创建Pinia实例
const pinia = createPinia()
const app = createApp(App)

// 2. 先使用Pinia
app.use(pinia)

// 3. 使用路由
app.use(router)

// 挂载应用
app.mount('#app')

4. 在App.vue中添加路由视图

<template>
  <div id="app">
    <!-- 路由出口:渲染当前路由对应的组件 -->
    <router-view />
  </div>
</template>

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

<style>
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
</style>

5. 在组件中使用路由

在组件中跳转路由

import { useRouter } from 'vue-router'

export default {
  setup() {
    const router = useRouter()
    
    // 跳转到指定路由
    const navigateToAbout = () => {
      router.push('/about')
    }
    
    // 带参数跳转
    const goToFundRank = (id) => {
      router.push({
        name: 'FundRankList',
        params: { id }
      })
    }
    
    return {
      navigateToAbout,
      goToFundRank
    }
  }
}
import { useRoute } from 'vue-router'

export default {
  setup() {
    const route = useRoute()
    
    // 获取路由参数
    const fundId = route.params.id
    
    return {
      fundId
    }
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容