最新要闻
- 【环球快播报】“爱妻”来了!理想L7的二排空间有多大?史无前例的“皇后座”感受下
- 当前速递!影像机皇预定!小米13 Ultra堆料惊人:四颗5000万像素主摄
- 【环球报资讯】日本60岁宅男看动漫被打断对父母下狠手 啃老30年:网友吐槽二次元危害大
- 焦点快报!丙种球蛋白被炒到上万元 真的需要囤一点吗?
- 20款理想ONE新功能上线:支持3.5kW外放电、配套设备仅2999元
- 今日快讯:拖死锤子 罗永浩回应遭郑刚炮轰获圈内人士力挺:喜欢乱搞小三关系
- 国产屏真香!苹果也喜欢:iPhone 15/15 Plus要用京东方屏
- 一加11砍掉8GB丐版!员工:一加用户都喜欢大内存版本
- 环球快资讯丨复刻iPhone 14 Pro!乐视手机S1 Pro入网:搭载国产芯 这真不卡
- 世界速读:Mini LED屏加入高端笔记本阵营!硬刚OLED
- 世界热讯:特斯拉股东要求董事会做好接班准备:以防失去马斯克
- 全球观察:投资人郑刚炮轰罗永浩拖死了锤子 罗永浩回应:严重失实
- 能流畅用4年不卡的骁龙8系手机来了!一加11下周首销:3999元
- 热讯:老雷筹拍《角斗士2》
- 靳东宋佳主演电视剧《纵有疾风起》热播:moto razr折叠屏抢镜
- 即时:普及150W秒充 真我GT Neo3手机12GB大内存版直降600元
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前快讯:vue-router的使用
前端路由的工作方式1.点击路由链接a标签2浏览器URL地址中的hash值发送变化3.前端路由监听到URL地址中的hash发生变化4.前端路由拿到hash值对应的组件component, 然后渲染到浏览器对应的位置。URL的hash地址与组件components的对应关系。
vue-router的实现原理
1.点击链接,切换url的hash地址2.监听window.onhashchange浏览器hash地址变化,hash地址变化时,动态修改组件类型
<script>import Home from "@/components/Home/Home.vue"import Center from "./components/Center/Center.vue"import About from "./components/About/About.vue"export default { name: "RouterDemoApp", components: { Home, About, Center }, created () { window.onhashchange = () => { switch (location.hash) { case "#/home": this.comName = "Home" break case "#/center": this.comName = "Center" break case "#/about": this.comName = "About" break } } }, data () { return { comName: "Home" } },}</script>
vue-router的基本使用
(资料图)
1.在src目录下,创建router目录,然后创建index.js文件,在文件中添加路由配置如下import Vue from "vue"import Router from "vue-router"import About from "@/components/About/About.vue"import Center from "@/components/Center/Center.vue"import Home from "@/components/Home/Home.vue"// 将Router安装为Vue的插件//Vue全局引入插件vue-router//Vue在调用vue-router的install方法时,会引入2个全局组件router-link, router-view//router-link: 和的作用一样,用于href调整链接//router-view: 代表要跳转的页面的展示位置Vue.use(Router)// 创建路由的实例对象//实例属性.$route和$.router的区别//$router: 拥有路由的所有方法, $route: 拥有路由的所有属性const router = new Router({ mode: "hash", //默认采用hash模式 routes: [ { path: "/home", component: Home }, { path: "/about", component: About }, { path: "/center", component: Center } ]})export default router
2.在App.vue中,添加路由跳转入口和组件出口
主页 个人中心 关于
3.在main.js中,添加路由实例挂载
import Vue from "vue"import App from "./App.vue"import routerObj from "@/router/index"Vue.config.productionTip = falsenew Vue({ render: h => h(App), // 路由实例挂载 router: routerObj}).$mount("#app")
vue-router嵌套路由
如果当前组件下有根据路由展示的子组件,可以在当前路由匹配规则中添加children项,然后在对应数组中添加子路由的路由规则配置。如果要展示一个默认子路由,可以将这个子路由配置的path设置为""空字符串。import Vue from "vue"import Router from "vue-router"import About from "@/components/About/About.vue"import Center from "@/components/Center/Center.vue"import Home from "@/components/Home/Home.vue"import Tab1 from "@/components/Tabs/Tab1.vue"import Tab2 from "@/components/Tabs/Tab2.vue"// 将Router安装为Vue的插件Vue.use(Router)// 创建路由的实例对象const router = new Router({ routes: [ // 地址重定向,当跳转的URL地址没有对应组件时,那么就会强制跳转到另一个地址 // 重定向:确定原来地址url是啥,看着不爽,要重定向到哪个url { path: "/", redirect: "/home" }, // 路由匹配规则,实例对应是根据匹配规则,从上到下逐条匹配的 { path: "/home", component: Home }, // 嵌套路由,就是在对应路由容器配置项上增加children属性, 然后在这个子路由配置上增加嵌套子路由的配置。 // 嵌套子路由的path配置无需是/开头,默认router会自动添加 { path: "/about", component: About, // 默认子路由方法1:设置父路由的重定向地址 // redirect: "/about/tab1", children: [ // { path: "tab1", component: Tab1 }, // 默认子路由方法2:在父路由的children中,设置默认路由的path:"", 这样表示父路由默认展示这个子路由 { path: "", component: Tab1 }, { path: "tab2", component: Tab2 } ] }, { path: "/center", component: Center } ]})export default router
vue-router动态路由
当一类子路由会随业务不同而动态变化时,那么可以将这个路由的变化部分定义成参数{ path: "movie/:id", component: Movie }添加 props: true选项时,组件内可以通过props参数接收动态路由的路由参数。{ path: "movie/:mid", component: Movie, props: true }import Vue from "vue"import Router from "vue-router"import About from "@/components/About/About.vue"import Center from "@/components/Center/Center.vue"import Home from "@/components/Home/Home.vue"import Tab1 from "@/components/Tabs/Tab1.vue"import Tab2 from "@/components/Tabs/Tab2.vue"import Movie from "@/components/Movie/Movie.vue"// 将Router安装为Vue的插件Vue.use(Router)// 创建路由的实例对象const router = new Router({ routes: [ // 地址重定向,当跳转的URL地址没有对应组件时,那么就会强制跳转到另一个地址 { path: "/", redirect: "/home" }, // 路由匹配规则,实例对应是根据匹配规则,从上到下逐条匹配的 { path: "/home", component: Home }, // 嵌套路由,就是在对应路由容器配置项上增加children属性, 然后在这个子路由配置上增加嵌套子路由的配置。 // 嵌套子路由的path配置无需是/开头,默认router会自动添加 { path: "/about", component: About, // 默认子路由方法1:设置父路由的重定向地址 // redirect: "/about/tab1", children: [ // { path: "tab1", component: Tab1 }, // 默认子路由方法2:在父路由的children中,设置默认路由的path:"", 这样表示父路由默认展示这个子路由 { path: "", component: Tab1 }, { path: "tab2", component: Tab2 } ] }, { path: "/center", component: Center, children: [ // id部分是可变路由的参数部分,它是随参数变化的。 // { path: "movie/:mid", component: Movie } { path: "movie/:mid", component: Movie, props: true } ] } ]})export default router
使用时,根据业务不同动态变化路由
Center组件
三国演义 红楼梦 西游记 水浒传
vue-router动态路由参数传递
路由/参数传递vue代码如下:用户1 -----routes代码如下:{ // 路径里面传递参数是通过斜线传递的:比如/user/detail/1 path: "detail/:id", name: "userDetail", component: () => import("../view/UserDetail.vue")}----这种参数在组件里面如何获取呢?this.$route.params.id
路径?参数传递
用户1 这种传递方式如何在组件里面获取参数呢?this.$route.query.id
声明式导航与编程式导航
声明式导航:通过在html中写a标签,在vue中写Home组件-编程式导航<script>export default { name: "RouterDemoHome", data () { return { } }, mounted () { }, methods: { handlePush () { // this.$router.push("hash地址"), 会产生历史记录 this.$router.push("/about/tab2") }, handleReplace () { // this.$router.replace("hash地址"),跳转到目标地址,并替代掉当前的历史记录 this.$router.replace("/center/movie/3") }, handleGo () { // this.$router.go(-1) go(正数)向前, go(负数)后退 this.$router.go(-1) } }}</script>
全局路由导航前置守卫
前置守卫的三种跳转方式
1.当前跳转满足跳转条件,则直接调用next()放行。2.当前跳转不满足跳转条件,需要跳转到登录进行登录认证,则调用next("/login")进行跳转。3.当前跳转不满足跳转条件,需要跳转到当前页面,刷新当前页,则调用next(false)进行刷新。router.beforeEach:每次路由跳转之前会调用这个路由守卫回调方法。可以在前置守卫中添加权限控制,比如只有localStore中保存了登录cookie,才进行方向,允许进入首页。import Vue from "vue"import Router from "vue-router"import About from "@/components/About/About.vue"import Center from "@/components/Center/Center.vue"import Home from "@/components/Home/Home.vue"import Tab1 from "@/components/Tabs/Tab1.vue"import Tab2 from "@/components/Tabs/Tab2.vue"import Movie from "@/components/Movie/Movie.vue"import Main from "@/components/Main/Main.vue"import Login from "@/components/Login/Login.vue"// 将Router安装为Vue的插件Vue.use(Router)// 创建路由的实例对象const router = new Router({ routes: [ // 地址重定向,当跳转的URL地址没有对应组件时,那么就会强制跳转到另一个地址 { path: "/", redirect: "/home" }, // 路由匹配规则,实例对应是根据匹配规则,从上到下逐条匹配的 { path: "/home", component: Home }, // 嵌套路由,就是在对应路由容器配置项上增加children属性, 然后在这个子路由配置上增加嵌套子路由的配置。 // 嵌套子路由的path配置无需是/开头,默认router会自动添加 { path: "/about", component: About, // 默认子路由方法1:设置父路由的重定向地址 // redirect: "/about/tab1", children: [ // { path: "tab1", component: Tab1 }, // 默认子路由方法2:在父路由的children中,设置默认路由的path:"", 这样表示父路由默认展示这个子路由 { path: "", component: Tab1 }, { path: "tab2", component: Tab2 } ] }, { path: "/center", component: Center, children: [ // id部分是可变路由的参数部分,它是随参数变化的。 { path: "movie/:mid", component: Movie, props: true } ] }, { path: "/login", component: Login }, { path: "/main", component: Main } ]})// 全局路由守卫,当每次路由跳转时,会先调用这个回调函数,判断是否可以继续跳转router.beforeEach((to, from, next) => { /* must call `next` */ console.log(to) if (to.path === "/main") { const token = localStorage.getItem("login-token") if (token) { next() } else { next("/login") } } else { // next:放行,如果运行路由跳转,则需要调用next() next() }})export default router
vue-router生命周期
1.全局beforeEach: 一般用来做权限控制。2.路由中beforeEnter: 用的不多3.组件里调用 beforeRouteEnter: 这个方法里面没有this4.全局 router.resolve5.全局 afterEach6.调用组件的 beforeRouterLeave: 离开是提醒,是否提交表单,是否关注等等7.beforeRouterUpdate 用在路由参数更新了,但是路由没有更新时使用。
当前快讯:vue-router的使用
全球最资讯丨Unity初始界面设计与人物移动代码
学习笔记——书城项目之“我的订单”功能
环球百事通!一些学习编程的优质网站
学习笔记——书城项目第六阶段之去结账功能的准备工作、去结账功能的实现
【环球快播报】“爱妻”来了!理想L7的二排空间有多大?史无前例的“皇后座”感受下
精彩看点:Docker轻量级可视化工具Portainer
热点评![概率论与数理统计]笔记:2.5 随机变量函数的分布
全球简讯:express学会CRUD
当前速递!影像机皇预定!小米13 Ultra堆料惊人:四颗5000万像素主摄
今日报丨B站地区限制破解方法
【环球报资讯】日本60岁宅男看动漫被打断对父母下狠手 啃老30年:网友吐槽二次元危害大
Spring IOC官方文档学习笔记(七)之Bean Definition继承
焦点快报!丙种球蛋白被炒到上万元 真的需要囤一点吗?
20款理想ONE新功能上线:支持3.5kW外放电、配套设备仅2999元
当前快讯:一种inlineHook检测方案
今日快讯:拖死锤子 罗永浩回应遭郑刚炮轰获圈内人士力挺:喜欢乱搞小三关系
国产屏真香!苹果也喜欢:iPhone 15/15 Plus要用京东方屏
一加11砍掉8GB丐版!员工:一加用户都喜欢大内存版本
HTML超文本标记语言1
环球快资讯丨复刻iPhone 14 Pro!乐视手机S1 Pro入网:搭载国产芯 这真不卡
世界速读:Mini LED屏加入高端笔记本阵营!硬刚OLED
环球观焦点:NOI2003 文本编辑器 题解
世界热讯:特斯拉股东要求董事会做好接班准备:以防失去马斯克
全球观察:投资人郑刚炮轰罗永浩拖死了锤子 罗永浩回应:严重失实
能流畅用4年不卡的骁龙8系手机来了!一加11下周首销:3999元
热讯:老雷筹拍《角斗士2》
靳东宋佳主演电视剧《纵有疾风起》热播:moto razr折叠屏抢镜
即时:普及150W秒充 真我GT Neo3手机12GB大内存版直降600元
天天速看:女子表白领导被拒后每天在公司摸鱼 还免被裁引热议:网友吐槽道德绑架
[Docker]使用Docker开启一个MariaDB服务并在宿主机里访问服务
当前速读:小鹏P7喜提开年首次OTA:新增“神仙级”NGP车道定位功能
极其反常!欧洲多国冬天像夏天:多处滑雪胜地闹雪荒
专业鼻腔护理 海元素生理性盐水鼻腔喷雾器60ml 12.23元包邮
特斯拉再降价!Model3创历史新低:你还等“Model 2”吗?
专家建议不要生吃可生食鸡蛋:有健康风险
全球微资讯!以小见大:由低代码的发展,窥企业数智化转型之路
关注:阿凡达2回本!卡梅隆确认拍续集:剧透《阿凡达3/4/5》剧情/进度
【天天报资讯】e平台3.0首车 比亚迪海豚12月热销2.6万:本田飞度彻底被打趴
最新消息:投资人郑刚炮轰罗永浩:拖死锤子、不懂感恩,将联合发起回购
宝岛眼镜旗舰店抄底:镜框+防蓝光近视镜片99元包邮
开五天 一天降一万老车主泪奔维权!特斯拉国产车降价为冲量 拒绝补偿
当前快讯:全球变暖加剧:专家称本世纪末全球三分之二冰川或消失
全球简讯:21岁网红庄慕卿车祸身亡 逆向行驶还翘头致两车相撞4人遇难:网友称禁止摩托车
环球微速讯:Codeforces Round #842 (Div. 2) A-E
焦点速读:使用KVM创建OEL虚拟机
别只用来发电了 太阳能制氢突破!10倍效率 成本还更低
全球即时看!全球首个全功能无线底座问世:干掉线缆 满足4K/60Hz带宽
今头条!豆瓣9.6分 《中国奇谭》凭什么让国漫再次封神?
全球要闻:Intel Arc A750显卡深入测试:性能RTX 3060、功耗RTX 3070
今日快讯:内网渗透-PTH&PTK&PTT哈希票据传递
天天微速讯:官方批准ARJ21国产客机改货机!最大运力10吨
天天微资讯!3.2K/165hz屏!联想第四代ThinkBook 16P发布: 配独特触点接口
每日速讯:汤姆·汉克斯谈好莱坞裙带关系:本就是家族产业
【天天播资讯】雷蛇灵刃18游戏本发布:18寸240Hz大屏、RTX 4090显卡替代台式机
特斯拉再降价 Model 3创历史新低!老车主亏哭了 山顶买车血亏6万
耗资两亿的《三体》 在《中国奇谭》面前毫无价值
内网信息收集
今日观点!day03-模块化编程
今日最新!vue中$children的理解
每日焦点!TCL华星展示最新带鱼屏模组:暗处无限接近0nit
天天热议:矿卡的阴影已经过去了 板卡一哥华硕率先表态:显卡库存已正常
全球观速讯丨遇到查酒驾猛打方向盘 结果巧了:直接一步到位
全球快资讯:无视油车 特斯拉Model Y成英国12月最畅销汽车
世界播报:售价超2万元!世界首款真无线电视现身CES:电池供电不插线
记录--微信调用jssdk全流程详解
最新:LaTeX 进阶语法
世界观热点:国人不再迷信日本车 日产2022年累计销量105万:同比暴跌超1/5
当前热讯:又见白菜价 梅捷2TB SSD硬盘到手554元(每GB不到3毛)
HTC Vive XR眼镜发布:双2K屏、配有可拆卸电池
最资讯丨四川一地再现土坑酸菜 工人用脚踩 网友无奈:眼不见为净
每日视讯:Redmi K60/K60 Pro对比拆解:做工用料良心!性价比刚刚的
【吐槽贴】项目经理的进阶日常:项目要收尾了,我却慌了
当前滚动:三亚民宿老板称一个月赚回三年亏损:20万一晚酒店已售罄
焦点关注:谁说微星不做AMD显卡了!RX 7900终于亮相 只是有点敷衍
天天快播:红魔8 Pro系列即将再次开卖:3999元起 首销曾被抢购一空
云南发现2.44亿年前“奇异罗平龙”化石:身长超半米 像蜥蜴
马化腾服不服?李彦宏:百度研发强度、投入国内最牛 比腾讯高
通讯!Git管理版本详细教程
世界快播:手工实现一个ORM小框架
【天天播资讯】AIRIOT答疑第5期|如何使用低代码业务流引擎?
亲测有效! Bypass V1.15.5 12306分流抢票助手 for Windows
每日视讯:比亚迪仰望:那年我翻山跨海 横扫车圈无对手
信息:联想Yoga Book 9i双屏笔记本发布:两块13寸2.8K触摸屏
当前视讯!AMD锐龙7000智酷版上架!6核不过1549元 可能有惊喜
天天观焦点:女子吐槽智能电视会员乱象:看什么都收费
环球速递!国产秀肌肉!全球首款8K激光电视来了:海信打造、画质细数毛
【世界快播报】保存用户登录状态之Session和JWT
【世界热闻】three.js场景地形导出到物理引擎
网站变更检测、监控、警报丨WebSite-Watcher功能简介
基于Python的K-Means遥感影像聚类
苹果iOS app上架流程
世界观察:《阿凡达2》接招!国产科幻大片走出国门 《流浪地球2》将在澳新上映
消息!特斯拉国产车型大幅降价 副总裁陶琳回应:坚持以成本定价
Win11 2023开年更新Build 25272发布:干掉中文版大BUG!更加流畅稳定
特斯拉降价 网友翻出蔚来李斌2年前视频:价格稳定是对用户负责
天天新消息丨智能电视视频会员一充再充!体验太差了
全球即时:gget: 一款强大的基因组参考数据库的高效查询工具
学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发
Model 3要破20万节奏!特斯拉国产车型大幅降价 老车主晒图被割韭菜