【Vue-路由案例】面经基础版

目录

  • <<回到导览
  • 1.面经基础版
    • 1.1.VueCli建项目
      • 1.1.1.VueCli 自定义项目
      • 1.1.2.ESlint代码规范
    • 1.2.项目路由
      • 1.2.1.一级路由配置
      • 1.2.2.二级配置路由
      • 1.2.3.设置高亮
      • 1.2.4.发生请求、渲染
      • 1.2.5.跳转传参、再发请求
      • 1.2.6.体验优化
      • 1.2.7.keep-alive

<<回到导览

1.面经基础版

1.1.VueCli建项目

1.1.1.VueCli 自定义项目

  1. 安装脚手架 (已安装)

    npm i @vue/cli -g
    
  2. 创建项目

    vue create 项目名
    
  3. 选择创建自定义项目选项,回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 自定义项目(空格键为确认/取消),回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  5. 选择vue的版本

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  6. 是否使用history模式

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  7. 选择css预处理

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  8. 选择eslint规范

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  9. 选择校验的时机 (保存校验)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  10. 选择配置文件的生成方式(放在单独的文件之中)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 是否保存预设,为预设命名

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    当我们保存预设后,下次可以直接建立含有上面选项的项目
    在这里插入图片描述

  2. 项目创建完毕

1.1.2.ESlint代码规范

JavaScript Standard Style 规范说明:https://standardjs.com/rules-zhcn.html

  • 通过eslint插件来实现自动修正

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 配置VSCode

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    添加配置代码

    // 当保存的时候,eslint自动帮我们修复错误
    "editor.codeActionsOnSave": {"source.fixAll": true
    },
    // 保存代码,不自动格式化
    "editor.formatOnSave": false
    

1.2.项目路由

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2.1.一级路由配置

import Vue from 'vue'
import VueRouter from 'vue-router'
// 一级路由
import Layout from '@/views/Layout.vue'
import ArticleDetail from '@/views/ArticleDetail.vue'Vue.use(VueRouter)
const router = new VueRouter({routes: [{path: '/',component: Layout},{path: '/detail',component: ArticleDetail}]
})
export default router

1.2.2.二级配置路由

通过children配置项,可以进行路由嵌套,配置二级路由

  1. 二级配置路由(view/index.js)

    routes: [// 一级路由{path: '/',component: Layout,children: [// 二级路由{path: '/article',component: Article},{path: '/collect',component: Collect},{path: '/like',component: Like},{path: '/user',component: User}]},{path: '/detail',component: ArticleDetail}]
    
  2. 配置二级路由出口(Layout.vue)

     <div class="h5-wrapper"><div class="content"><!-- 二级路由出口 --><router-view></router-view></div><nav class="tabbar"><router-link to="/article">面经</router-link><router-link to="/collect">收藏</router-link><router-link to="/like">喜欢</router-link><router-link to="/user">我的</router-link></nav></div>
    

    一级路由的出口在App.vue中

    <div class="wrapper"><router-view></router-view>
    </div>
    

很多同学心里的路由应该是这样的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 诚然,这样的路由更符合我们操作逻辑;

  • 但是在我们最开始的路由图中,一级路由首页和二级路由都有个特点,都有导航条

  • 所以首页和二级路由分为一类,没有导航条的面经详情分为一类

  • 从路由出口的角度来看,一级路由出口在App.vue,二级路由出口在首页(Layout.vue),而导航条在一级路由页Layout.vue中,二级路由出口外

  • 所以,首页和二级路由都有都有导航条,而面经详情页没有

  • 说得有点绕,画个图方便理解一些(一级路由出口就是包裹、定位一级路由页的容器,二级亦然)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2.3.设置高亮

  1. 将a标签替换为<router-link to="/xxx">XXX</router-link>

  2. 设置高亮样式(也可以先自定义匹配类名)

    .router-link-active{font-weight: 700;color: orange;
    }
    

1.2.4.发生请求、渲染

安装axios:yarn add axios

接口文档:

请求地址: https://mock.boxuegu.com/mock/3083/articles
请求方式: get

接下来的操作无非是请求数据(created),循环渲染,这里我就省略了

1.2.5.跳转传参、再发请求

  • 为盒子设置点击传参

    // 传参方式多样,可以自己选择
    @click="router.push(`/detail?id=${item.id}`)"
    
  • 获取传递参数,将参数传给服务器,再将结果渲染即可

1.2.6.体验优化

  1. 为首页重定向列表页

    加配置项redirect: '/article'

  2. 为面经详情页添加返回上一页按钮

    @click="router.back()"
    

1.2.7.keep-alive

  • 当路由被跳转后,原来所看到的组件就被销毁了,重新返回后组件又被重新创建了。
  • 所以当点击返回上一页按钮,因为主页组件已被销毁,所以并不能回到进入面经详情页时,首页的位置
  • 我们可以利用keep-alive组件,来缓存主页组件,来完成这个功能

keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。

keep-alive 是一个抽象组件:它自身不会渲染成一个 DOM 元素,也不会出现在父组件中

  • App.vue

    <template><div class="h5-wrapper"><keep-alive><!-- 一级路由出口 --><router-view></router-view></keep-alive></div>
    </template>
    

    以上代码,keep-alive包裹了一级路由出口,那么一级路由页都会被缓存;但是同为一级路由页的面经详情页,我们并不想其缓存(因为面经详情页太多了,浏览量多的画会影响性能),我们可以利用keep-alive的三个属性

    属性效果
    include组件名数组,只有匹配的组件会被缓存
    exclude组件名数组,任何匹配的组件都不会被缓存
    max最多可以缓存多少组件实例
  • 上面代码可以改为(只显示了修改的部分)

    <!-- LayoutPage为组件名,没有组件名才会匹配组件名 -->
    <keep-alive :include="['LayoutPage']"><router-view></router-view>
    </keep-alive>
    

    缓存组件后,再返回首页,created,mounted等生命钩子并不会触发(因为组件没有被重新创建),如果我们要返回首页立即触发某些事件,我们可以利用keep-alive 的额外的两个生命周期钩子。

    生命周期钩子触发时机
    activated当组件被激活(使用)的时候触发
    deactivated当组件不被使用的时候触发

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

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

相关文章

【T2I】MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis

code&#xff1a;CVPR 2024 MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis [CVPR 2024] MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis - 知乎 Abstract 我们提出了一个多实例生成(Multi-Instance Generation, MIG)任务…

用AI来了解用户都在关注的品牌问题是什么?

​ ​​用户重复问的核心问题整理​​ 基于百度文心一言、豆包、KIMI、腾讯元宝、DeepSeek五大模型的回答&#xff0c;企业最关注的GEO问题可归纳为以下10类&#xff08;按优先级排序&#xff09;&#xff1a; ​​1. GEO是什么&#xff1f;与传统SEO有何本质区别&#xff1f…

OpenCv(七)——模板匹配、打包、图像的旋转

目录 一、模板匹配 模板匹配原理 1、单模板之间的匹配 &#xff08;1&#xff09;读取并显示待匹配的图片和模板图片 &#xff08;2&#xff09;模板匹配并绘制匹配位置的外接矩形 &#xff08;3&#xff09;显示最终的效果 2、模板与多个对象匹配&#xff0c;仅匹配当前…

蓝桥云客 最大和

问题描述 小蓝在玩一个寻宝游戏&#xff0c;游戏在一条笔直的道路上进行&#xff0c;道路被分成了 n 个方格&#xff0c;依次编号 1 至 n&#xff0c;每个方格上都有一个宝物&#xff0c;宝物的分值是一个整数&#xff08;包括正数、负数和零&#xff09;&#xff0c;当进入一…

【C++算法】49.分治_归并_计算右侧小于当前元素的个数

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 315. 计算右侧小于当前元素的个数 题目描述&#xff1a; 解法 归并排序&#xff08;分治&#xff09; 当前元素的后面&#xff0c;有多少个比我小。&#xff08;降序&…

IPSec简单例子

实验说明 使用Ensp模拟器实现IPsec隧道实验。IPSec是一种VPN技术&#xff0c;配置的思路首先是两个网络先通&#xff0c;然后配置ACL、IEK和IPSec对等体&#xff0c;从而建立VPN隧道。 实验拓扑 配置过程 1 配置IP地址以及OSPF路由 # 配置中使用了简写命令&#xff0c;不熟…

车载联网终端4G汽车TBOX介绍定义与概述

汽车 TBOX&#xff08;Telematics Box&#xff09;是专为汽车设计的远程通信终端设备&#xff0c;属于车联网系统的关键组成部分。车联网系统一般包含主机、汽车 T - BOX、手机 APP 及后台系统。融合了车身网络和 4G 无线通信技术&#xff0c;为汽车提供丰富的 Telematics 服务…

《DeepSeek RAG 增强检索知识库系统》Ollama DeepSeek 流式应答页面对接之三

前言 自从有了 AI 工具以后&#xff0c;所有以前头疼前端页面开发的后端程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff0c;都漏出了友善&#x1f60a;微笑&#xff01; 主要我们可以清楚地表达编写页面诉求&#xff0c;AI 工具就可以非常准确且迅速的完成代码的实…

【MyBatis】深入解析 MyBatis:关于注解和 XML 的 MyBatis 开发方案下字段名不一致的的查询映射解决方案

注解查询映射 我们再来调用下面的 selectAll() 这个接口&#xff0c;执行的 SQL 是 select* from user_info&#xff0c;表示全列查询&#xff1a; 运行测试类对应方法&#xff0c;在日志中可以看到&#xff0c;字段名一致&#xff0c;Mybatis 就成功从数据库对应的字段中拿到…

深入理解Java性能调优与JVM底层机制

Java作为一种广泛应用的编程语言&#xff0c;在企业级应用中占据着举足轻重的地位。随着系统规模的扩大和业务需求的复杂化&#xff0c;性能调优成为了开发过程中不可忽视的一环。Java的性能瓶颈往往并不直接来自代码本身&#xff0c;而是与JVM&#xff08;Java虚拟机&#xff…

odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程

安装模块 安装销售 、库存、采购、制造模块 2.开启外包功能 在进入制造应用点击 配置—>设置 勾选外包&#xff0c;点击保存 添加信息 一、添加客户信息 点击到销售应用 点击订单—>客户 点击新建 创建客户1&#xff0c;及其他客户相关信息&#xff0c;点…

Logo语言的在线课程学习

Logo语言在线课程学习的探索 引言 在信息技术快速发展的今天&#xff0c;编程已经成为一门重要的技能。尤其随着人工智能、数据分析和互联网技术的普及&#xff0c;各种编程语言层出不穷&#xff0c;其中Logo语言以其独特的教育意义和学习优势&#xff0c;逐渐受到学校和教育…

情感语音的“开源先锋”!网易开源

语音合成技术近年来取得了显著进步&#xff0c;特别是在语音克隆、语音助手、配音服务和有声读物等领域。然而&#xff0c;如何让合成的语音更具情感&#xff0c;更贴近人类的真实表达&#xff0c;一直是这一领域的重要研究方向。今天&#xff0c;我们将为大家介绍一款由网易有…

摄像头模块对焦方式的类型

摄像头模块的对焦方式直接影响成像清晰度和使用场景适应性&#xff0c;不同技术各有其优缺点。以下是常见对焦方式及其原理、特点和应用场景的详细说明&#xff1a; ‌1. 固定对焦&#xff08;Fixed Focus&#xff09;‌ ‌原理‌&#xff1a;镜头固定在特定距离&#xff08;…

使用Vue、Nodejs以及websocket搭建一个简易聊天室

简易聊天室 说在前面效果展示websocketwebsocket的由来websocket的特点 vue前端静态结构效果代码 点击切换用户以及该用户高亮实现思路效果展示 发送消息功能效果展示 连接服务端 Nodejs服务器端实现步骤代码 说在前面 在学习计算机网络的时候&#xff0c;看到了websocket这个…

【免费】2005-2019年各地级市绿色专利申请量数据

2005-2019年各地级市绿色专利申请量数据 1、时间2005-2019年 2、来源&#xff1a;国家知识产权局 3、指标&#xff1a;省份、城市、年份、绿色发明专利申请量、绿色实用新型专利申请量 4、范围&#xff1a;360地级市 5、指标解释&#xff1a;绿色专利是指涉及环保、新能源…

架构师面试(二十六):系统拆分

问题 今天我们聊电商系统实际业务场景的问题&#xff0c;考查对业务系统问题的分析能力、解决问题的能力和对系统长期发展的整体规划能力。 一电商平台在早期阶段业务发展迅速&#xff0c;DAU在 10W&#xff1b;整个电商系统按水平分层架构进行设计&#xff0c;包括【入口网关…

2. Qt界面文件原理

本节主要介绍ui文件如何与窗口关联&#xff0c;并通过隐式连接方式显示对话框 本文部分ppt、视频截图原链接&#xff1a;[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1 UI文件如何与窗口关联 1.1 mainwindow.cpp的头文件ui_mainwindow.h 根据编译原理的基本规…

雅思大作文写作——词伙、简单句、并列句的使用

词伙是一些可以表达我们常用观点的单词组合,这个组合可能不只是2-3个单词,也可能是很多单词组成的一个短句。 一、词伙使用 1. 不要中译英 2. 重视词伙,而非单词 如何替换表达 1. 如果要替换的是一个名词,如students,则有下面的一些方法: A. 使用替换词或者词组:y…

⭐算法OJ⭐滑动窗口最大值【双端队列(deque)】Sliding Window Maximum

文章目录 双端队列(deque)详解基本特性常用操作1. 构造和初始化2. 元素访问3. 修改操作4. 容量操作 性能特点时间复杂度&#xff1a;空间复杂度&#xff1a; 滑动窗口最大值题目描述方法思路解决代码 双端队列(deque)详解 双端队列(deque&#xff0c;全称double-ended queue)是…