Vue3的vue-router路由详解

news2025/1/25 4:41:29

这篇文章是接着【三分钟快速搭建Vue3+webpack项目】的内容做的开发,有基础的可以跳过 【三分钟快速搭建Vue3+webpack项目】,直接看以下的内容。

Vue3的vue-router路由详解:

首先安装路由依赖模块:

npm install vue-router@4

所需代码文件如下图:
图1

aac4421b71344dc0931439f78dc83889.png

 

所需要的主要文件:index.html、index.js、App.vue


index.html:模板页面,项目中的代码编译之后都是放入到模板页面中id为app的元素这种。
代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Vue</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

index.js:创建一个vue应用,将路由放入应用之中,并挂载到模板页面id为app的元素上。
代码如下:

import { createApp } from 'vue'
import { createRouter,createWebHashHistory } from 'vue-router'
import App from './App.vue'

// 1. 定义路由组件:这里直接用的对象数据,也可以导入其他组件。
const Main = { render(){ return '月影WEB 欢迎大家来学习各种技术知识!'} }
const Lists = { render(){ return '月影WEB-列表页面'} }
const Details = { render(){ return '月影WEB-详情页面'} }

// 2. 定义一些路由:每个路由都需要映射到一个组件。
const routes = [
    { path: '/', component: Main },
    { path: '/lists', component: Lists },
    { path: '/details', component: Details },
]

// 3. 创建路由实例并传递 `routes` 配置。
const router = createRouter({
    // 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。
    history: createWebHashHistory(),
    routes, // `routes: routes` 的缩写
})

// 4.创建一个vue应用,将App组件和定义的路由放入到vue应用,并挂载到模板页面id为app的元素上。
createApp(App).use(router).mount('#app')

1. 定义路由组件:这里直接用的对象数据,也可以导入其他组件。
const Main = { render(){ return '月影WEB 欢迎大家来学习各种技术知识!'} }
const Lists = { render(){ return '月影WEB-列表页面'} }
const Details = { render(){ return '月影WEB-详情页面'} }

注意:Main、Lists 、Details 定义了三个路由组件,return后面就是每个路由组件展示的UI。

 

2. 定义一些路由:每个路由都需要映射到一个组件。
const routes = [
    { path: '/', component: Main },
    { path: '/lists', component: Lists },
    { path: '/details', component: Details },
]

注意:path是路由路径,也是地址栏会显示的路径,component是放路由组件的,每个路由路径都可以进行组件映射。

 

3. 创建路由实例并传递 `routes` 配置。
const router = createRouter({
    // 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。
    history: createWebHashHistory(),
    routes, // `routes: routes` 的缩写
})

注意:这里只做了简单的配置,history是路由的模式,routes放定义的路由,createRouter创建路由实例。

 

4.创建一个vue应用,将App组件和定义的路由放入到vue应用,并挂载到模板页面id为app的元素上。
createApp(App).use(router).mount('#app')

 

App.vue:用来展示不同的路由页面UI。
代码如下:

<template>
    <router-view></router-view>
</template>
<script>
export default {

}
</script>

注意:<router-view>是用来展示路由对应的组件UI的。
 

启动服务的效果如下:


{ path: '/', component: Main }

9f71b5c6890e472c820b3d0418326606.png

 

{ path: '/lists', component: Lists }

f794eb83457c492785dc9c171e5473cd.png


{ path: '/details', component: Details }

 99e69e11e50548ee8174da264b74c0ab.png

 

关注公众号(月影WEB),了解更多的前后端知识;
欢迎大家关注互相交流学习;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/407839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

618快到了送上自制前端小项目(html css js)

目录 &#x1f6a9;.自定义播放器 &#x1f3e0;.图片自动消失 ✨.小轮播图 &#x1f383;.旋转音乐盒 前言&#xff1a;这些小项目全都是自创的。 如果需要应用&#xff0c;或则转发的话请与 博主联系&#xff0c;感谢你们的理解&#xff0c; 1.自定义播放器 在页面中放置…

云化Web IDE,在线开发新模式

目录 前言 一、初识云IDE 二、CSDN 云IDE 1、如何使用云IDE 2、使用云IDE 三、云IDE的使用感受 四、总结 前言 工欲善其事必先利其器&#xff0c;作为程序员&#xff0c;我们在编写代码的时候&#xff0c;一定会选用一款得心应手的工具。就像行走江湖的侠客&#xff0c;手…

vue项目打包优化的方法

1.按需加载第三方库 例如 ElementUI、lodash 等 a, 装包 npm install babel-plugin-component -D b, babel.config.js module.exports {"presets": ["vue/cli-plugin-babel/preset"],"plugins": [["component",{"libraryNa…

uniapp中的分享功能实现(APP,小程序,公众号)

uniapp中的分享功能实现(APP,小程序&#xff0c;公众号) 1.APP端的分享 app端的分享可以直接使用uniapp封装的方法uni.share&#xff0c;uni-app的App引擎已经封装了微信、QQ、微博的分享SDK&#xff0c;开发者可以直接调用相关功能。可以分享到微信、QQ、微博&#xff0c;每个…

【Web前端】一文带你吃透CSS(上篇)

前端学习路线小总结: 基础入门:HTML CSS JavaScript三大主流框架:VUE REACT Angular深入学习:小程序 Node jQuery TypeScript 前端工程化一起学习CSS吧! 一.CSS简介1.什么是CSS?二.CSS语法1.语法规则2.注释三.CSS选择器

Vue打包后加载太慢,访问时间太久,记录项目的整个优化过程

问题背景 最近在做一个Vue项目时&#xff0c;在打包上线的时候发现项目部署完第一次访问时间特别慢&#xff0c;整个登录页面加载用了8-10秒&#xff0c;很明显这个速度达不到项目上线的要求&#xff0c;于是开始了对项目打包之后增快加载速度的研究。 未优化前的项目加载时间…

Vue3 响应式原理

响应式原理 Vue2 使用的是 Object.defineProperty Vue3 使用的是 Proxy 2.0的不足 对象只能劫持 设置好的数据&#xff0c;新增的数据需要Vue.Set(xxx) 数组只能操作七种方法&#xff0c;修改某一项值无法劫持。 reactive和effect的实现 export const reactive <T e…

Vue 解决报错 You are using the runtime-only build of Vue where the template compiler is not available.

报错信息 [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. 您正在使用Vue的仅运行时版本,并而模板编译器不可用。 可…

手把手教你如何对接支付宝支付接口(奶爸级别)

支付宝支付接口步骤&#xff1a;第一步&#xff1a;第二步&#xff1a;如何让支付宝将付款成功的通知&#xff0c;回调到你本机&#xff0c;我使用的是内网穿透&#xff1a;Natapp步骤&#xff1a; 第一步&#xff1a;准备支付宝相关的参数&#xff0c;如appId、公私钥 第二步…

vite中静态资源(css、img、svg等)的加载机制及其相关配置

什么是静态资源&#xff1f; 简单来说&#xff0c;我们开发完一个项目后&#xff0c;需要把它打包&#xff08;一般是dist文件夹&#xff09;&#xff0c;并部署在服务器上。那么&#xff0c;这个打包后的dist文件夹都是静态资源&#xff1b;在我们写项目时&#xff0c;图片、…

JS类型转换

JS中的类型转换方式一般分为三类&#xff1a;转为String型&#xff0c;转为数字型&#xff0c;转为布尔型。 一.转为String型 1.toString() 通过变量.toString()可以将其他类型的变量转换为字符串型&#xff08;null和undefined没有toString()方法&#xff09; let age 18;…

如何运行vue项目

一、 1、下载node.js 安装完成后分别在cmd中执行node -v查看是否安装成功&#xff0c;出现版本号就安装成功了 2、安装 webpack npm install webpack -g 安装完成后分别在cmd中执行npm -v查看是否安装成功&#xff0c;出现版本号就安装成功了 3、安装vue-cli脚手架 cnpm i…

【vue3】使用canvas

canvas是什么&#xff1f; 一个html5支持的新标签&#xff0c;见名知意&#xff0c;canvas就是画板的意思&#xff0c;可以在canvas上画画。css画三角形很简单&#xff0c;但是要画五角星呢&#xff0c;不妨试试canvas。 在html中使用canvas 1、canvas是html5中的一个标签。…

前端之CSS

目录 一.CSS是什么 二.CSS的基本语法规范 三.CSS的引入方式 1.内部样式 2.内联样式 3.外部样式 四.CSS的基本用法 1.基础选择器 1.1 标签选择器 1.2 类选择器 1.3 id选择器 1.4 通配符选择器 2.复合选择器 2.1 后代选择器 2.2 子选择器 2.3 并集选择器 2.4 伪类…

【实战篇】最详细的Rollup打包项目教程

介绍 本文带你一起使用 Rollup 打包项目&#xff0c;实现以下功能&#xff1a; 自动将 dependencies 依赖声明为 externals支持处理外部 npm 依赖支持基于 CommonJS 模块引入支持 typescript&#xff0c;并导出声明文件支持 scss&#xff0c;并添加前缀支持自动清除调试代码打…

怒肝最新保姆级前端学习路线,速成贴心全面!

这份学习路线并不完美&#xff0c;也不会有最终形态&#xff0c;正如前端不可预见、永无止境的未来。 大家好&#xff0c;我是鱼皮&#xff0c;肝了几天终于完成了这份保姆级前端学习路线。 &#x1f482; &#x1f4bb; &#x1f474;&#x1f3fd; 先放一张图&#xff1a…

JS原型与原型链详细解释

文章目录一、JS原型链简要解释二、JS原型链详细解释1.构造函数2.原型对象3.__proto__4.原型链总结一、JS原型链简要解释 原型是function对象上的一个属性, 它表示构造函数构造出来的对象的共有祖先, 被通过构造函数构造出来的对象上有一个__proto__属性指向该函数的prototype,…

JSON.parse和JSON.stringify的用法

平时我们在接收后端返回的json对象通常是一个字符串类型的object&#xff0c;所以一般我们要对这个object进行类型转化后&#xff0c;我们才能使用object里面的数据&#xff0c;而这其中涉及到两个必不可少的方法就是JSON.parse和JSON.stringify JSON.parse()JSON.parse()方法将…

vue 控制元素的显示和隐藏

方法&#xff1a; 使用 v-if 指令&#xff0c;通过动态的向DOM树内添加或者删除DOM元素的方式来显示或隐藏元素&#xff1b;使用 v-show 指令&#xff0c;通过设置DOM元素的display样式属性来控制显隐。v-if 指令与 v-show 指令都可以根据值动态控制DOM元素显示隐藏&#xff0…

文档库开发之-vite打包优化

背景 首次进行组件库文档打包&#xff0c;遇到了一些ts打包报错和css打包警告&#xff0c;记录下处理过程。并且发现打包后的主包的体积过大&#xff0c;有一定优化空间 ts报错处理 当时有好奇为什么开发环境下都不报错&#xff0c;构建才产生这么多ts错误。大致猜想可能vite…