vue3加vite安装路由并跳转页面

这篇博客介绍了如何在Vue3项目中结合Vite安装和配置路由,以及解决从Vue2升级到Vue3后页面跳转问题的方法。首先通过pnpm或npm安装路由,接着创建新页面,建立router文件夹并配置index.js和router.js。在main.js中进行路由设置。需要注意的是,Vue3中页面跳转需按需引入,不能直接使用this.$router.push,需查阅资料进行修正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近使用了vue3中的路由器,记录一下。
1.首先安装路由,我使用的是pnpm,也可以使用npm安装

pnpm i vue-router@4
或者
npm i vue-router@4

2.新建页面a.vue

<script setup>
 import { ref } from "vue";
</script>

<template>
a
</template>

<style scoped>
</style>

3.在页面创建router文件夹,新建页面在这里插入图片描述
index.js

import {createRouter, createWebHistory} from 'vue-router'
import routes from './router.js'
 
const router = createRouter({
    history: createWebHistory(), 
    routes
})
 
export default router

router.js

const routes = [
{
        name: 'h',
        path: '/',
        component: () => import('../components/HelloWorld.vue')
    },
    {
        name: 'a',
        path: '/a',
        component: () => import('../components/a.vue')
    }
    
];
 
export default routes//导出

在main.js配置

import { createApp } from 'vue'
import App from './App.vue'
import router from './router/index.js'
import ElementUI from 'element-plus'
import 'element-plus/dist/index.css'
createApp(App).use(router).use(ElementUI).mount('#app')

下面就可以跳转页面了,由于vue3和vue2跳转方式不一样,所以我一开始还是使用this.$router.push来跳转,结果报错,然后在网上看才发现也是按需引入,然后才能使用。
跳转路由界面 h.vue

<script setup>
import { onMounted, ref } from "vue";
//引入路由
import { useRouter } from "vue-router";
function zoomImg(obj) {
  console.log(obj.$el, "obj");
  // 一开始默认是100%
  let zoom = parseInt(obj.$el.style.zoom, 10) || 100;
  // 滚轮滚一下wheelDelta的值增加或减少120
  zoom += event.wheelDelta / 12;
  if (zoom > 0) {
    obj.$el.style.zoom = zoom + "%";
  }
  return false;
}
let fontbig = ref('大号字');
    var app = document.getElementById("app");
function bigfontsize() {
  if (fontbig.value=='大号字') {
    fontbig.value='普通字号'
    app.style.fontSize=30+'px'
    console.log(fontbig.value,'进入');
  } else {
    fontbig.value='大号字'
    app.style.fontSize=20+'px'
    console.log(fontbig.value,'不进入');
  }
}
//创建route
 const route = useRouter();
function com() {
//跳转页面
  route.push({path:'/a'})
}
onMounted(() => {
  
});

</script>

<template>
<p>文字</p>
  <el-button type="primary" @click="bigfontsize" v-html="fontbig"></el-button>
  <div
    style="width: 100px; height: 100px; background-color: red"
    @mousewheel="zoomImg(this)"
  >
    <img src="../assets/logo.png" @mousewheel="zoomImg(this)" />
  <el-button type="primary" @click="com">进入</el-button>

  </div>
</template>

<style scoped>
</style>

App.vue

<script setup>
</script>

<template>
  <router-view></router-view>
</template>

<style>
</style>

### Vue 3Vite 中配置 Vue Router 实现页面导航 在基于 Vue 3Vite 的项目里,为了实现页面之间的导航功能,需先安装 `vue-router` 库。通过命令行工具执行如下指令完成库的引入: ```bash npm install vue-router@next ``` 创建路由实例时,采用组合式 API 创建路由器对象定义初始的基础路径[^1]。 #### 定义基础路由文件 index.ts 构建应用的核心路由逻辑位于 `src/router/index.ts` 文件内。此文件负责初始化路由表、设定历史模式(如哈希模式),以及挂载必要的钩子函数来增强路由行为。 ```typescript import { createRouter, createWebHashHistory } from &#39;vue-router&#39; import { basicRoutes } from &#39;@/router/routes&#39; export const router = createRouter({ history: createWebHashHistory(), routes: basicRoutes, }) // 导出用于注册到全局的应用实例上的方法 export function setupRouter(app): void { app.use(router) } ``` 上述代码片段展示了如何利用 `createWebHashHistory()` 方法指定 URL 形式的 hash 模式,传入预设好的静态路由列表 `basicRoutes` 来启动路由系统。 #### 动态载组件与懒载 对于大型单页应用程序来说,推荐使用按需载的方式优化性能。这可以通过异步导入语法轻松达成,在声明具体路由规则的时候直接返回 Promise 对象即可自动触发懒载机制。 ```typescript const HomeView = () => import(&#39;@/views/Home.vue&#39;) const AboutView = () => import(&#39;@/views/About.vue&#39;) const basicRoutes = [ { path: &#39;/&#39;, component: HomeView }, { path: &#39;/about&#39;, component: AboutView } ] ``` #### 设置路由守卫处理复杂场景 有时需要监听特定时刻发生的事件,比如当用户访问某个受保护资源前验证身份合法性;或是监听页面切换过程中传递参数给下一个视图等操作。此时可以借助于前置、更新及后置三种类型的导航守卫来进行控制流管理。 ```typescript import { setupRouterHooks } from &#39;./routerHooks&#39; setupRouterHooks() ``` 这里假设存在一个名为 `routerHooks.ts` 的辅助模块专门用来封装这些额外的功能扩展点。 #### 注册路由至主程序入口 main.ts 最后一步是在项目的根级 JavaScript 或 TypeScript 文件中调用之前准备好的 `setupRouter` 函数,从而正式激活整个路由体系结构。 ```typescript import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; import { setupRouter } from &#39;./router&#39; const app = createApp(App) setupRouter(app) app.mount(&#39;#app&#39;) ``` 这样就完成了在一个典型的 Vue 3 + Vite 构建环境中集成 Vue Router 支持基本页面跳转的能力搭建工作流程介绍。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值