VueRouter使用,界面切换

一、安装

vue-router@3,@4分别对应vue2,3.。我现在用的是vue2,

npm install vue-router@3

在这里插入图片描述

二、使用

①首先在component路径下提前写好需要渲染的组件。

在这里插入图片描述
②在App.vue中使用router声明路由。其中router-link的to指明渲染哪一个组件。router-view是一个占位符,每次需要渲染的组件就放在这个占位符这。

<div id="app"><h1>APP组件</h1><router-link to="/discover">发现音乐</router-link><br><router-link to="/my">我的音乐</router-link><br><router-link to="/friends">关注</router-link><br><router-link to="/barry">Barry</router-link><!-- 声明路由占位标签 --><!-- 每次点击组件时会渲染到router-view占位符 --><router-view></router-view></div>

③现在只是指明了要渲染哪个组件,但是这些名字和具体的component还没有对应上,需要有专门的js写映射。

index.js

//在js里面定义对应关系
import VueRouter from "vue-router"
import Vue from "vue"
import Discover from "@/components/Discover.vue"
import Friends from "@/components/Friends.vue"
import My from "@/components/My.vue"
import Barry from "@/components/Barry.vue"//将VueRouter设置为Vue插件
Vue.use(VueRouter)const router = new VueRouter({routes:[{path:"/",redirect:"/discover"},{path:"/discover",component:Discover},{path:"/friends",component:Friends},{path:"/my",component:My},{path:"/barry",component:Barry}]
})//把router导出,在main.js中使用
export default router

④在main.js中配置一下。

import Vue from 'vue'
import App from './App.vue'//导入router
import router from "./router/index"
Vue.config.productionTip = falsenew Vue({render: h => h(App),router:router
}).$mount('#app')

三、路由嵌套

在Discover.vue中加两个孩子路由

<div><h1>发现音乐</h1><!-- 子路由 --><router-link to="/discover/toplist">推荐</router-link><router-link to="/discover/playlist">歌单</router-link><hr><router-view></router-view></div>

和之前的操作一样,要在component下写好对应的组件文件,唯一有区别的就是在index.js的Discover下写好孩子路由。
在这里插入图片描述

四、动态路由

就是说有一个组件会被使用多次,例如音乐推荐里面用的组件都是同一个,只是值不一样,这个时候不能手动的一个个去写路径。直接使用动态路由即可。

例如我需要展示的是三个卡片,按理说我的index.js也要写多个路径。(其实感觉能用for循环)

<div><h1>我的音乐</h1><router-link to="/my/1">收藏1</router-link><router-link to="/my/2">收藏2</router-link><router-link to="/my/3">收藏3</router-link><router-view></router-view></div>

实际上使用":id"即可

{path:"/my",component:My,children:[{path:":id",component:MusicCard,props: true}]},

除此之外呢,注意到上面的代码中有个props:true的参数,这里是为了让MusicCard组件接收到id参数,因为我们在具体的使用中网络请求肯定会请求一系列的数据都要基于id。在MusciCard组件中声明id就能直接使用了。

<template><div><h3>收藏音乐{{ id }}</h3></div>
</template><script>export default{props:["id"]}
</script>

五、路由守卫

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

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

相关文章

从零开始学Spring Boot系列-SpringApplication

SpringApplication类提供了一种从main()方法启动Spring应用的便捷方式。在很多情况下&#xff0c; 你只需委托给 SpringApplication.run这个静态方法 &#xff1a; SpringBootApplicationpublic class SpringbootLearningApplication {public static void main(String[] args) …

【MYSQL锁】透彻地理解MYSQL锁

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;mysql专栏&#xff1a;小林同学的专栏 目录 1.锁 1.1 概述 1.2 全局锁 1.2.1 语法 1.2.1.1 加全局锁 1.2.1.2 数据备份 1.2.1.3 释放锁 1.2.1.4 特点 1.2.1.5 演示 1.3 表级锁 1.3.1 介绍 …

HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色

HTTP (HyperText Transfer Protocol) 和 HTTPS (Hypertext Transfer Protocol Secure) 是互联网通信中不可或缺的两种协议&#xff0c;它们共同支撑了全球范围内的Web内容传输与交互。本文将深度解析HTTP与HTTPS的工作原理、安全机制、性能影响&#xff0c;并探讨它们在现代Web…

Linux第87步_阻塞IO实验

阻塞IO是“应用程序”对“驱动设备”进行操作&#xff0c;若不能获取到设备资源&#xff0c;则阻塞IO应用程序的线程会被“挂起”&#xff0c;直到获取到设备资源为止。 “挂起”就是让线程进入休眠&#xff0c;将CPU的资源让出来。线程进入休眠后&#xff0c;当设备文件可以操…

基于java+springboot+vue实现的图书管理系统(文末源码+Lw)23-259

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;图书信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

嵌入式ARM版本银河麒麟操作系统V10SP1安装OPenGauss数据库

前言&#xff1a; 官网提供了非常完整的openGauss安装步骤。 https://opengauss.org/zh/download/archive/列举一下个人的使用环境&#xff1a; 麒麟V10 rk3588工控板&#xff08;ARM&#xff09; openGauss-3.0.5&#xff08;极简版&#xff09;浏览一下官网&#xff0c;可以…

一网统管/安防监控/视频综合管理EasyCVR视频汇聚平台解决方案

一、当前现状分析 当前视频资源面临以下问题&#xff1a; 1&#xff09;不同单位在视频平台建设中以所属领域为单位&#xff0c;设备品牌众多&#xff0c;存在的标准不一&#xff0c;各系统之间也没有统一标准&#xff1b; 2&#xff09;各单位视频平台建设分散、统筹性差&a…

代码随想录--数组--二分查找

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 举一个字符数组的例子&#xff0c;如图所示&#xff1a; 需要两点注意的是 数组下标都是从0开始的。 数组内存空间的地址是连续的。 正是因为数…

第十一届 蓝桥杯 单片机设计与开发项目 省赛

第十一届 蓝桥杯 单片机设计与开发项目 省赛 01 核心框架&#xff08;多界面显示&#xff0c;界面切换&#xff0c;参数设置&#xff09; bit Seg_Disp_Mode;//0-数据界面 1-参数界面 float Temperature; unsigned char Temp_Disp[2]; unsigned char Temp_Disp_Ctrol[2] {30,…

【vue】watch监听取不到this指向的数?

今天同事问我&#xff0c;watch里this指向的数值&#xff0c;别的地方却可以打印出来。工具也能看到数值&#xff0c;但打印出来却是undifined&#xff0c;先看看代码&#xff1a; 懒得打字了直接上截图吧 ps&#xff1a; 在Vue组件中&#xff0c;如果你在watch选项中访问this…

【精选】发布应用到应用商店的基本介绍

摘要 本文旨在介绍如何在各大应用商店发布应用&#xff0c;包括市场选择、准备材料、上架步骤以及常见被拒原因及解决方法。通过详细的步骤和经验分享&#xff0c;帮助开发者顺利将应用推向市场。 引言 随着移动应用市场的不断发展&#xff0c;越来越多的开发者希望将他们的…

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024)

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024) 会议简介 2024国际能源环境、材料科学和人工智能大会&#xff08;ICEEMSAI 2024&#xff09;主要围绕能源环境、物质科学和人工智慧等研究领域&#xff0c;旨在吸引能源环境、先进材料和人工智能专家学者、科技人员…

跨域问题一文解决

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳中求进&#xff0c;晒太阳 一、为什么会出现跨域的问题&#xff1f; 是浏览器的同源策略&#xff0c;跨域也是因为浏览器这个机制引起的&#xff0c;这个机制的存在还是在于安全…

C语言指针易混问题

1. 在此函数传参过程中&#xff0c;虽然p是指针&#xff0c;但此处传递等价于值传递而非地址传递&#xff0c;所以函数中对变量的改变不改变主函数中原有变量的值 2. 能修改的是变量&#xff0c;但常量不能被修改&#xff0c;否则会出现段错误&#xff0c;下图为错误示范

机器学习中的激活函数

激活函数存在的意义&#xff1a; 激活函数决定了某个神经元是否被激活&#xff0c;当这个神经元接收到的信息是有用或无用的时候&#xff0c;激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数&#xff0c;神经元仅仅做线性变换&#xff0c;那么该神经网…

产品经理应具备哪些素质呢?

目录 简介 产品经理素质 CSDN学院 作者简介 简介 刚毕业想做产品经理&#xff0c;或者想转行产品经理&#xff0c;该怎么入手呢&#xff1f; 很多人对产品经理有这样一个认知&#xff1a;就是空有一个经理的头衔&#xff0c;却没有任何实质的权利。 其实这是有误区的&am…

日程安排组件DHTMLX Scheduler v7.0新版亮点 - 拥有多种全新的主题

DHTMLX Scheduler是一个类似于Google日历的JavaScript日程安排控件&#xff0c;日历事件通过Ajax动态加载&#xff0c;支持通过拖放功能调整事件日期和时间&#xff0c;事件可以按天、周、月三个种视图显示。 备受关注的DHTMLX Scheduler 7.0版本日前正式发布了&#xff0c;如…

小程序项目思路分享爬虫

小程序项目思路分享爬虫 具体需求&#xff1a; 有这几个就行&#xff0c;门店名称门店地址门店类型&#xff0c;再加上省、市、县/区门店名称&#xff1a;storeName 门店地址&#xff1a;storeAddress 程序运行&#xff1a; honor_spider获取经纬度信息。 经纬度——>详…

Ubuntu配置VScode的C++环境

在Ubuntu系统下配置C环境&#xff0c;并运行helloworld 1. 下载VScode 我这里使用的是星火应用商店&#xff0c;在商店里面可以直接下载安装 http://spark-app.store/ 2.创建文件夹 3.启动VScode并打开该文件夹 4.安装以下几个扩展 PS&#xff1a;Clang这个插件别安装&…

【电路笔记】-逻辑或非门

逻辑或非门 文章目录 逻辑或非门1、概述2、晶体管逻辑或非门3、数字逻辑或非门类型4、通用或非门逻辑或非门是数字逻辑或门与反相器或非门串联的组合。 1、概述 或非(Not-OR)门的输出通常为逻辑电平“1”,并且仅当其任何输入处于逻辑电平“1”时才变为“低”至逻辑电平“0”…