位置: 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实现文件上传下载功能

  • 超级IP是如何炼成的?(什么是超级ip)

    超级IP是如何炼成的?(什么是超级ip)

  • windows7 启动项(windows7 没声音)(windows7启动项修复)

    windows7 启动项(windows7 没声音)(windows7启动项修复)

  • p40pro和p40pro+手机壳一样吗(p40pro与p40pro+)

    p40pro和p40pro+手机壳一样吗(p40pro与p40pro+)

  • 三星手机软件在桌面消失了(三星手机 软件)

    三星手机软件在桌面消失了(三星手机 软件)

  • 小适是小米旗下的吗(小适品牌和小米旗下的品牌吗)

    小适是小米旗下的吗(小适品牌和小米旗下的品牌吗)

  • macyy进频道失败怎么办(苹果mac无法进入yy频道)

    macyy进频道失败怎么办(苹果mac无法进入yy频道)

  • 请问华为平板怎么截屏(请问华为平板怎么录屏)

    请问华为平板怎么截屏(请问华为平板怎么录屏)

  • 苹果11已经激活了还能转移安卓数据吗(苹果11已经激活了还能转移吗)

    苹果11已经激活了还能转移安卓数据吗(苹果11已经激活了还能转移吗)

  • xp系统宽带连接错误769(xp系统宽带连接不了)

    xp系统宽带连接错误769(xp系统宽带连接不了)

  • 苹果充电发热严重(苹果充电 发烫)

    苹果充电发热严重(苹果充电 发烫)

  • v1934a是vivo什么型号(v1932a是vivo什么型号)

    v1934a是vivo什么型号(v1932a是vivo什么型号)

  • 腾讯课堂直播能投屏吗(腾讯课堂直播能防录屏吗)

    腾讯课堂直播能投屏吗(腾讯课堂直播能防录屏吗)

  • 下载的软件一重启就没了(软件下载一半重新下载是什么原因)

    下载的软件一重启就没了(软件下载一半重新下载是什么原因)

  • 无线耳机丢了一只怎么办(无线耳机丢了还能找到吗)

    无线耳机丢了一只怎么办(无线耳机丢了还能找到吗)

  • 苹果X摔一下出现绿色一条(苹果x手机摔了一道)

    苹果X摔一下出现绿色一条(苹果x手机摔了一道)

  • 苹果手机序列号n开头什么意思(苹果手机序列号查询真伪)

    苹果手机序列号n开头什么意思(苹果手机序列号查询真伪)

  • 华为jkmal00b参数(华为jkmal00b华为手机什么型号)

    华为jkmal00b参数(华为jkmal00b华为手机什么型号)

  • vivox23标准版和幻彩版的区别(vivox23标准版和幻彩版手机壳一样吗)

    vivox23标准版和幻彩版的区别(vivox23标准版和幻彩版手机壳一样吗)

  • 小米手机有悬浮导航吗(小米手机有悬浮球功能吗)

    小米手机有悬浮导航吗(小米手机有悬浮球功能吗)

  • bm37电池是什么型号(bm3m电池是什么型号)

    bm37电池是什么型号(bm3m电池是什么型号)

  • 8p充电要多久(8p充电多久能充满)

    8p充电要多久(8p充电多久能充满)

  • 苹果xr怎么下载app(苹果XR怎么下载软件)

    苹果xr怎么下载app(苹果XR怎么下载软件)

  • 手机qq怎么关闭震动(手机qq怎么关闭好友推荐)

    手机qq怎么关闭震动(手机qq怎么关闭好友推荐)

  • 微信提示音怎么自定义(微信提示音怎么关掉)

    微信提示音怎么自定义(微信提示音怎么关掉)

  • 手机突然黑屏开不了机(手机突然黑屏开不了机充电也没反应)

    手机突然黑屏开不了机(手机突然黑屏开不了机充电也没反应)

  • users是什么文件夹(users是什么文件夹可以复制到D盘)

    users是什么文件夹(users是什么文件夹可以复制到D盘)

  • C语言进阶——自定义类型:枚举、联合(c语音进阶)

    C语言进阶——自定义类型:枚举、联合(c语音进阶)

  • 什么是减免税额90%
  • 前一年的未分配利润属于什么科目
  • 存款利息收入需要缴纳所得税吗
  • 公司代缴个税分录
  • 定期定额户个人所得税怎么申报
  • 一般纳税人的税率是多少个点
  • 房地产企业对外投资案例
  • 托收承付怎么理解
  • 社保扣款上月没扣本月如何做会计处理?
  • 收到销售折让的红字怎么做账
  • 货物运输企业的经营方式
  • 建筑业开票金额与审定金额之间的关系
  • 小规模纳税人一年不超过多少万
  • 17点增值税发票能开吗
  • 增值税发票查询
  • 学生兼职需要交什么税
  • 为什么收到发票
  • 公司员工驻外补贴政策
  • 公司对项目的资金支持
  • 商品进价销售要上税吗
  • linux命令-a
  • 自己使用过的固定资产和旧货有什么区别
  • 个人开发是什么意思
  • 年底返利账务处理
  • win11闪屏问题
  • mac和mac之间怎么传东西
  • 阿佩勒斯
  • framework core
  • 企业所得税季初数怎么填
  • ros urdf
  • 差额征税收到雇主责任险进项发票能抵扣吗
  • 金蝶科目明细表
  • thinkphp update方法
  • opencv识别车牌
  • 包装费 增值税
  • 未来社区政策支持
  • smb命令执行
  • 企业微信如何微信认证
  • 不缴纳增值税的收入需要缴纳水利税吗
  • 六税两费减半征收政策
  • 电子承兑汇票支付信用查询
  • 个人账户用于公司发工资
  • 混合销售的含义
  • 一般纳税人登记 核算地址
  • 暂估的原材料用不用记原材料明细账
  • 在建工程前期投标流程
  • 房产契税什么时候退税
  • 赠送给客户的产品怎么做账
  • 库存现金的主要活动
  • 工程上第三方代表啥意思
  • 公司购买的车辆
  • 会计凭证的主要种类
  • 自动备份mssql server数据库并压缩的批处理脚本
  • 备受大家关注的成语
  • windowsserver2008r2standard激活
  • 微软 win7
  • window8.1蓝屏
  • vista和win7哪个对配置要求高
  • bios术语
  • win10dll丢失
  • win7控制面板有哪些功能
  • win10正式版激活码
  • w10 xbox
  • linux 文件查看
  • win8如何进入高级启动项模式
  • xp磁盘空间不足怎么办
  • importem
  • python模块和类和方法
  • web页面展示
  • nodejs深入浅出pdf百度云
  • shell脚本 su
  • python 源码解析
  • jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
  • python中函数参数类型
  • android的动画有哪些?
  • Python通过行和列提取数据
  • 手游炫酷
  • 青岛市税务局内设机构
  • 贵州省税务网上缴费平台
  • 出口退税范围的货物
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设