位置: IT常识 - 正文

web前端面试高频考点——Vue的高级特性(动态组件、异步加载、keep-alive、mixin、Vuex、Vue-Router)(web前端面试题最新)

编辑:rootadmin
web前端面试高频考点——Vue的高级特性(动态组件、异步加载、keep-alive、mixin、Vuex、Vue-Router) 系列文章目录内容参考链接Vue基本使用Vue的基本使用(一文掌握Vue最基础的知识点)Vue通信和高级特性Vue组件间的通信及高级特性(多种组件间的通信、自定义v-model、nextTick、插槽)Vue高级特性Vue的高级特性(动态组件、异步加载、keep-alive、mixin、Vuex、Vue-Router)Vue原理1Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)Vue原理2Vue原理(diff算法、模板编译、组件渲染和更新、JS实现路由)Vue面试题web前端面试高频考点——Vue面试题文章目录系列文章目录一、Vue高级特性1、动态组件2、vue异步加载组件3、vue缓存组件(keep-alive)4、mixin二、Vuex1、Vuex基本概念2、用于Vue组件三、Vue-router1、动态路由2、懒加载一、Vue高级特性1、动态组件按未知顺序渲染组件

推荐整理分享web前端面试高频考点——Vue的高级特性(动态组件、异步加载、keep-alive、mixin、Vuex、Vue-Router)(web前端面试题最新),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:web前端面试题2021及答案,web前端面试题最新,web前端面试常问知识,web前端面试题最新,web前端常见面试题,web前端高频面试题,web前端高频面试题,web前端面试宝典,内容如对您有帮助,希望把文章链接给更多的朋友!

图片出处:https://coding.imooc.com/lesson/419.html#mid=33846

示例:动态组件的使用

index.vue 父组件

在 data 中接收组件名在 <component> 中通过 :is="xxx" 绑定组件<template> <div> <p>vue 高级特性-动态组件</p> <hr /> <component :is="NextTick"></component> </div></template><script>import NextTick from "./NextTick.vue";export default { components: { NextTick }, data() { return { NextTick }; },};</script>

示例:动态渲染多个组件

index.vue 父组件

<template> <div> <p>vue 高级特性-动态组件</p> <hr /> <div v-for="(val, key) in newsData" :key="key"> <component :is="val.type"></component> </div> </div></template><script>import myText from './myText'import myImage from './myImage'export default { components: { myText, myImage }, data() { return { newsData: { 1: { type: 'myText' }, 2: { type: 'myImage' } } }; },};</script>

myText 子组件

<template> <div> <p>我是 myText 组件</p> --------------------- </div></template>

myImage 子组件

<template> <div> <p>我是 myImage 组件</p> <img src="xxx"> </div></template>

2、vue异步加载组件import() 函数按需加载,异步加载大组件

示例:异步加载组件(按需加载,用的时候才加载)

index.vue 父组件

components 里面按需引入组件<template> <div> <my-image v-if="showImage" /> <button @click="showImage = true">点我显示</button> </div></template><script>export default { components: { myImage: () => import("./myImage"), }, data() { return { showImage: false, }; },};</script>

myImage.vue 子组件

<template> <div> <p>我是 myImage 组件</p> <img src="xxx"> </div></template>

3、vue缓存组件(keep-alive)缓存组件频繁切换,不需要重复渲染Vue性能优化的一种方法web前端面试高频考点——Vue的高级特性(动态组件、异步加载、keep-alive、mixin、Vuex、Vue-Router)(web前端面试题最新)

示例:keep-alive 实例,切换其他组件当前组件不会被销毁

KeepAlive.vue 父组件

导入 A,B,C 三个子组件点击按钮显示对应组件的内容<template> <div> <button @click="changeState('A')">A</button> <button @click="changeState('B')">B</button> <button @click="changeState('C')">C</button> <keep-alive> <keep-alive-state-a v-if="state === 'A'"></keep-alive-state-a> <keep-alive-state-b v-if="state === 'B'"></keep-alive-state-b> <keep-alive-state-c v-if="state === 'C'"></keep-alive-state-c> </keep-alive> </div></template><script>import KeepAliveStateA from "./KeepAliveStateA.vue";import KeepAliveStateB from "./KeepAliveStateB.vue";import KeepAliveStateC from "./KeepAliveStateC.vue";export default { components: { KeepAliveStateA, KeepAliveStateB, KeepAliveStateC, }, data() { return { state: "A", }; }, methods: { changeState(state) { this.state = state; }, },};</script>

KeepAliveStateA.vue 子组件

<template> <div> <p>state A</p> </div></template><script>export default { mounted() { console.log("A mounted"); }, destroyed() { console.log("A destroyed"); },};</script>

KeepAliveStateB.vue 子组件

<template> <div> <p>state B</p> </div></template><script>export default { mounted() { console.log("B mounted"); }, destroyed() { console.log("B destroyed"); },};</script>

KeepAliveStateC.vue 子组件

<template> <div> <p>state C</p> </div></template><script>export default { mounted() { console.log("C mounted"); }, destroyed() { console.log("C destroyed"); },};</script>

4、mixin多个组件有相同的逻辑,抽离出来mixin 并不是完美的解决方案,会有一些问题Vue3 提出的 Composition API 旨在解决这些问题

mixin 的一些问题

(1)变量来源不明确,不利于阅读 (2)多个 mixin 可能会造成命名冲突 (3)mixin 和组件可能出现多对多的关系,复杂度较高

示例:使用 mixin

MixinDemo.vue 组件

首先导入 mixin.js 文件mixins: [xxx] 使用它<template> <div> <p>{{ name }} {{ major }} {{ city }}</p> <button @click="showName">显示姓名</button> </div></template><script>import myMixin from "./mixin";export default { mixins: [myMixin], data() { return { name: "杂货铺", major: "web 前端", }; }, mounted() { console.log("component mounted", this.name); },};</script>

mixin.js 文件

mixin.js 里面的值和方法,可以在引用它的组件里直接使用export default { data() { return { city: "北京", }; }, methods: { showName() { console.log("点击显示名字:", this.name); }, }, mounted() { console.log("mixin mounted", this.name); },};

二、Vuex1、Vuex基本概念

Vuex基本概念参考链接

stategettersactionmutation2、用于Vue组件

用于Vue组件的Vuex参考链接

dispatchcommitmapStatemapGettersmapActionsmapMutations 三、Vue-router

Vue-router 使用参考链接

路由模式(hash、H5 history)路由配置(动态路由、懒加载)hash 模式(默认),如 http://abc.com/#/user/10(一般选择 hash 模式)H5 history 模式(默认),如 http://abc.com/user/10(需要 server 端支持)1、动态路由const User = { // 获取参数,如 10 20 template: '<div>User {{ $router.params.id }} </div>'}const router = new VueRouter({ routes: [ // 动态路径参数 以冒号开头。能命中 `/user/10` `/user/20` 等格式的路由 {path: '/user/:id', component: User} ]})2、懒加载按需引入,实现懒加载export default new VueRouter({ routes: [ { path: '/', component: () => import('./components/xxx') } ]})

不积跬步无以至千里 不积小流无以成江海

点个关注不迷路,持续更新中…

本文链接地址:https://www.jiuchutong.com/zhishi/295680.html 转载请保留说明!

上一篇:Vue动态组件 component :is的使用(vue动态组件component原理)

下一篇:SpringBoot+Vue实现文件上传下载功能

  • 湖南省居民健康卡个人信息在哪里(湖南省居民健康卡)

    湖南省居民健康卡个人信息在哪里(湖南省居民健康卡)

  • 微信可以二次编辑朋友圈吗(微信二次编辑朋友圈的赞还在吗)

    微信可以二次编辑朋友圈吗(微信二次编辑朋友圈的赞还在吗)

  • 华为p40耗电太快如何解决(华为p40耗电快需要关掉哪里)

    华为p40耗电太快如何解决(华为p40耗电快需要关掉哪里)

  • 微信语音截图并播放怎么操作(微信语音截图并播放怎么操作苹果手机)

    微信语音截图并播放怎么操作(微信语音截图并播放怎么操作苹果手机)

  • 快手强制解除手机号不绑定(快手强制解除手机号)

    快手强制解除手机号不绑定(快手强制解除手机号)

  • 抖音直播引流推广方法(抖音直播引流推流怎么弄)

    抖音直播引流推广方法(抖音直播引流推流怎么弄)

  • spoolsv.exe是什么进程(spoolsv.exe是什么意思)

    spoolsv.exe是什么进程(spoolsv.exe是什么意思)

  • 荣耀v30插卡口在哪(荣耀v30的卡槽)

    荣耀v30插卡口在哪(荣耀v30的卡槽)

  • 信息智能处理外包服务模式主要包括(信息智能处理外部信息)

    信息智能处理外包服务模式主要包括(信息智能处理外部信息)

  • 苹果11可以分期吗(苹果11分期付款一个月还多少钱)

    苹果11可以分期吗(苹果11分期付款一个月还多少钱)

  • 分屏互动怎么使用(分屏互动app怎么使用)

    分屏互动怎么使用(分屏互动app怎么使用)

  • Adobe大师版和Sp版的区别(adobe大师版和sp版有什么区别)

    Adobe大师版和Sp版的区别(adobe大师版和sp版有什么区别)

  • 打电话为什么总是关机状态(打电话为什么总是自动断?)

    打电话为什么总是关机状态(打电话为什么总是自动断?)

  • a1593支持联通4g吗(a1532支持联通吗)

    a1593支持联通4g吗(a1532支持联通吗)

  • 为什么软件更新不了(百度怎么更新)

    为什么软件更新不了(百度怎么更新)

  • 金立手机声音小怎么办(金立手机声音小怎么才能变大)

    金立手机声音小怎么办(金立手机声音小怎么才能变大)

  • 三星a5怎么滚动截屏(三星a51手机如何滚动截屏)

    三星a5怎么滚动截屏(三星a51手机如何滚动截屏)

  • 三星a7应用分身怎么用(三星s7应用分身)

    三星a7应用分身怎么用(三星s7应用分身)

  • 怎么看网线是不是光纤(怎么看网线是不是断了)

    怎么看网线是不是光纤(怎么看网线是不是断了)

  • 小米8标准版和屏幕指纹版区别(小米8标准版和探索版手机壳通用吗)

    小米8标准版和屏幕指纹版区别(小米8标准版和探索版手机壳通用吗)

  • shadowbar.exe - shadowbar是什么进程 有何作用

    shadowbar.exe - shadowbar是什么进程 有何作用

  • lmgrd.exe是什么进程 有什么用 lmgrd进程查询(imgrd.exe是什么)

    lmgrd.exe是什么进程 有什么用 lmgrd进程查询(imgrd.exe是什么)

  • 小米MINI路由器的硬盘的详细教程(小米mini路由器mesh)

    小米MINI路由器的硬盘的详细教程(小米mini路由器mesh)

  • node笔记_写文件(异步写入,同步写入,追加写入,流式写入)(node.txt)

    node笔记_写文件(异步写入,同步写入,追加写入,流式写入)(node.txt)

  • 【python量化】大幅提升预测性能,将NSTransformer用于股价预测(python 量化)

    【python量化】大幅提升预测性能,将NSTransformer用于股价预测(python 量化)

  • 农村个体工商户的定义
  • 城建税的计税依据是增值税和消费税的和吗
  • 国际税收协定的名词解释
  • 增值税发票认证在哪里
  • 员工出差车费如何报销
  • 企业合并怎么处理
  • 所得税季报季末人数怎么计算
  • 一般纳税人缴纳税金分录
  • 如何理解合并报表中少数股东损益的抵消
  • 工资是当月计提下月发放吗
  • 净资产账面价值怎么计算
  • 接受劳务是进项还是销项
  • 经常做无票收入没有通过公户收款会有问题吗
  • 加计抵扣进项税进营业外收入
  • 财务合理化建议例子
  • 计提代扣代缴个人缴纳的社会保险费分录
  • 金税盘技术服务费可以全额抵扣吗
  • 少缴纳社保怎么要求支付赔偿金
  • 没签合同怎么交社保
  • 预缴两个点的税是什么意思
  • 商业承兑汇票适用于
  • 外贸企业出口收入确定
  • 出售股票或债券的条件
  • 怎么查企业的增值税纳税额
  • 法院判决书能作为证据使用吗
  • 发票勾选保存后不提交了能留到下月抵扣吗?
  • 劳务服务公司可以承包大型工程吗?
  • mac复制文件路径后怎么粘贴
  • macos mojace
  • 出纳交接工作注意
  • 个人所得税到年底能不能退回来
  • 收到空头支票解释怎么写
  • 成本法 合并
  • PHP:mcrypt_enc_get_modes_name()的用法_Mcrypt函数
  • 防止盗链的php代码
  • windows安装无法继续,若要安装请重新启动
  • php解析配置文件
  • uni-app实战教程
  • 利用matlab作图
  • ieee下载论文
  • 前端开发软件哪个最好
  • thinkphp版本区别
  • sum(sumif)
  • 逾期超过一年
  • 征收率有几种
  • 普通发票增量需要什么资料
  • 深入了解工作优势怎么回答
  • 财务软件费用可以抵税吗
  • 装卸搬运服务属于劳务吗
  • 公司注册后一直没有申报
  • 出差的招待费算差旅费
  • 处置子公司如何纳税
  • mysql命令行怎么用
  • 金税四期监控什么
  • 进项税额是意思
  • 货物退回的会计怎么做账
  • 固定资产转换为投资性房地产转换日
  • 销售部门交通费计入什么费用
  • 食品加工企业成本核算方法和流程
  • 现金日记账的登记日期以什么日期为标准?
  • 备查账簿有没有固定的格式
  • mysql 5.6 5.7
  • 如何恢复数据库删除的文件
  • MySql 5.6.36 64位绿色版安装图文教程
  • mysql57服务无法启动,找不到文件夹
  • linux安装rpm软件包的命令
  • 安装ubuntu不支持nvidia显卡
  • linux的移植
  • Linux CentOS系统下tomcat配置ssl教程
  • 打开电脑显示配置windows,可是一直0%,怎么办
  • bootstrap内容
  • android集成chromiumview
  • Mongoose中document与object的区别示例详解
  • jQuery Ajax传值到Servlet出现乱码问题的解决方法
  • python组合运算
  • jQuery ztree实现动态树形多选菜单
  • 税务副科级选拔
  • 沙宣发型适合什么年龄女性
  • 太原公安分局有几个
  • 河北电子税务局怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设