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

  • 大学校长是什么级别行政干部责任是什么

    大学校长是什么级别行政干部责任是什么

  • 怎样设置路由器让网速变快(怎样设置路由器)(怎样设置路由器穿墙功能)

    怎样设置路由器让网速变快(怎样设置路由器)(怎样设置路由器穿墙功能)

  • 尾巴有再生功能的动物有什么(尾巴有再生功能的动物有哪些)(尾巴有再生功能的有哪些)

    尾巴有再生功能的动物有什么(尾巴有再生功能的动物有哪些)(尾巴有再生功能的有哪些)

  • 如何恢复qq聊天记录(如何恢复QQ聊天照片)

    如何恢复qq聊天记录(如何恢复QQ聊天照片)

  • 钉钉上课老师会看到学生吗(钉钉上课老师会看到学生吗连麦)

    钉钉上课老师会看到学生吗(钉钉上课老师会看到学生吗连麦)

  • 苹果ipad打不开机了怎么办(苹果ipad打不开机)

    苹果ipad打不开机了怎么办(苹果ipad打不开机)

  • 抖音里下单买了东西在哪里查询(抖音买完东西)

    抖音里下单买了东西在哪里查询(抖音买完东西)

  • 微信忘记了密码登不上去了怎么办(微信忘记了密码怎么找回)

    微信忘记了密码登不上去了怎么办(微信忘记了密码怎么找回)

  • 健康码可以删除重新申请吗(健康码可以删除家人吗)

    健康码可以删除重新申请吗(健康码可以删除家人吗)

  • 苹果4g变e怎么恢复(iphone的4g变成e咋回事)

    苹果4g变e怎么恢复(iphone的4g变成e咋回事)

  • nova se什么意思(华为手机nova系列se什么意思)

    nova se什么意思(华为手机nova系列se什么意思)

  • 小米k30指纹解锁在哪里(小米k30指纹解锁位置在哪里)

    小米k30指纹解锁在哪里(小米k30指纹解锁位置在哪里)

  • ipad120刷新率有哪些设备(刷新率120的ipad)

    ipad120刷新率有哪些设备(刷新率120的ipad)

  • 苹果里面那个圆怎么设置(苹果里面那个圆圈在哪里找)

    苹果里面那个圆怎么设置(苹果里面那个圆圈在哪里找)

  • win10如何查看电脑蓝牙版本(win10如何查看电脑主板型号)

    win10如何查看电脑蓝牙版本(win10如何查看电脑主板型号)

  • 苹果手机11系列什么时候上市

    苹果手机11系列什么时候上市

  • 华硕主板硬盘模式achi和ide在哪改(华硕主板硬盘模式ahci和ide在哪改)

    华硕主板硬盘模式achi和ide在哪改(华硕主板硬盘模式ahci和ide在哪改)

  • 华为ebg是什么意思(华为ebg-an00是什么型号)

    华为ebg是什么意思(华为ebg-an00是什么型号)

  • 淘宝直播红包怎么抢(淘宝直播红包怎么领取了在哪里)

    淘宝直播红包怎么抢(淘宝直播红包怎么领取了在哪里)

  • ps如何正确使用标尺(ps如何使用?)

    ps如何正确使用标尺(ps如何使用?)

  • cad镜像快捷键(cad镜像快捷键命令)

    cad镜像快捷键(cad镜像快捷键命令)

  • 腾讯云Linux系统怎么挂载磁盘?(腾讯云centos5.8)

    腾讯云Linux系统怎么挂载磁盘?(腾讯云centos5.8)

  • 提示“d3d***.dll”丢失怎么办(提示语是什么意思?)

    提示“d3d***.dll”丢失怎么办(提示语是什么意思?)

  • 克卢恩国家公园里的凯瑟琳湖和沃辛顿山,育空 (© plainpicture/Design Pics/Robert Postma)(克卢恩国家公园在哪里)

    克卢恩国家公园里的凯瑟琳湖和沃辛顿山,育空 (© plainpicture/Design Pics/Robert Postma)(克卢恩国家公园在哪里)

  • River Avon in Bath, England (© Robert Harding World Imagery/Offset by Shutterstock)

    River Avon in Bath, England (© Robert Harding World Imagery/Offset by Shutterstock)

  • 职工产假津贴怎么领取
  • 个人接私活需要开票,可以让别的公司帮忙开票吗?
  • 个税手续费怎么交增值税
  • 汽车租赁企业
  • 小规模减免增值税要交企业所得税吗
  • 回购股票注销股本,股价大涨案例
  • 个人股权转让未分配利润如何处理
  • 无偿赠送商品要纳企业所得税吗
  • 应收账款平均占用资金的变动额
  • 出口销售收入会计分录
  • 准予以后纳税年度结转扣除的项目有
  • 员工自己领取社保卡需要带什么资料
  • 销售商品的成本计入什么科目
  • 跨年暂估收入如何调整
  • 固定资产进项可以抵扣的时间
  • 开具发票只有票号可以吗?
  • 未报税会怎么样
  • 营改增行业销售额的规定
  • 保险公司联合举办活动
  • 境内个人去境外开设公司
  • 应付账款周转率越高越好吗
  • 进项税额能抵扣的几种情形
  • 预缴增值税抵扣销项税额账务处理
  • 上月有留底税额,这个月有销销没有进项怎么做账
  • 进项和销项相抵还需要交税吗
  • 污水处理费该谁交
  • win10字体有些模糊
  • 发放工资不计提可以吗
  • win10 多屏协同
  • php删除数组中的某个值
  • 怎么解决windows许可证即将过期
  • won10搜索框
  • 申请一般纳税人公司流程
  • 电脑fs0是什么
  • php extract函数
  • 最保值的ipad
  • 置换土地如何做账务处理
  • 营改增后土地增值税若干征管规定
  • 土地价款会计分录
  • yii框架教程
  • 即征即退进项税转出
  • 暂估价是单价还是总价
  • nvme安装win10教程
  • 蓝桥杯真题c语言
  • ubuntu系统日志配置文件
  • 对公取款
  • 使用二氧化碳灭火器时人应该站在什么位置
  • mysql日期和时间类型
  • 开发研究的定义
  • 进口货物的完税价格计算公式
  • 金融企业有啥
  • 房屋租赁费可以加计扣除吗
  • 企业没有工会的需要计提嘛
  • 土地入账成本包括哪些
  • 转贴现占谁的授信
  • 以前年度的固定资产入成原材料了怎么办
  • 永续债举例
  • 出口货物不予免税的原因
  • 应交增值税贷方余额表示什么
  • linux的df命令是什么单词的缩写
  • centos怎么查看文件
  • linux,Centos5,Ubuntu关掉ipv6的方法
  • explorer.exe是什么指令
  • windows8安装密钥永久
  • win7电脑flash安装教程
  • win7电脑c盘格式化
  • 批量替换在哪
  • cocos2dx3.3 便条提示语功能简单实现
  • ruby 递归
  • 大家看的是什么
  • ie8兼容性模式设置在哪
  • unity脚本编写教程
  • js限制输入字符长度
  • nodejs例子
  • 手游开发商和发行商有哪些
  • nodejs图片上传
  • js数组排序方法sort
  • css实现无缝滚动
  • 高新区地税办税服务厅
  • 个人所得税税率表及速算扣除数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设