当前位置: 首页 > news >正文

vue面试题8|[2024-11-14]

问题1:什么是渐进式框架?

vue.js        router        vuex        element        ...插件

vue.js 渐0        router 渐1        vuex 渐2

vue.js只是一个核心库,比如我再添加一个router或者vuex,不断让项目壮大,就是渐进式框架带来的好处。 

问题2:vue2.x生命周期

1.有哪些生命周期

        系统自带(8个):

                beforeCreate

                created

                beforeMount

                mounted

                beforeUpdate

                updated

                beforeDestroy

                destroyed 

2.一旦进入到页面或者组件,会执行哪些生命周期,顺序是什么?

          beforeCreate

          created

          beforeMount

          mounted

3.在哪个阶段有$el,在哪个阶段有$data

          beforeCreate 啥也没有

          created          有data,没有el

          beforeMount  有data,没有el

          mounted         都有

4.如果加入keep-alive会多两个生命周期

        activated、deactivated

5.如果加入了keep-alive,第一次进入组件会执行哪些生命周期?        

        beforeCreate

        created

        beforeMount

        mounted

        activated

6.如果加入了keep-alive,第二次或第N次进入组件会执行哪些生命周期?

        只执行一个生命周期:activated

7.场景

8043e52f9fa24287bb7f528f0cb3fc67.png

8.源码

class Vue{constructor(option){options.beforeCreate.bind(this)()this.$data = options.dataoptions.created.bind(this)()options.beforeMount.bind(this)()this.$el = document,querySelector(options.el)options.mounted.bind(this)()}
}

 问题3:谈谈你对keep-alive的了解

1.是什么

        是vue系统自带的一个组件,功能:是用来缓存组件的。  ====>  提升性能

2.使用场景

        就是用来缓存组件,提升项目的性能。具体实现比如:首页进入到详情页,如果用户在首页每次点击都是相同的,那么详情页就没有必要请求N次了,直接缓存起来就可以了,当然如果点击的不是同一个,那么就直接请求。

问题4:v-if和v-show区别

1.展示形式不同

        v-if是创建一个dom节点

        v-show是display:none、 block

2.使用场景不同

        初次加载v-if要比v-show好,页面不会多加载盒子

        频繁切换v-show要比v-if好,创建和删除的开销太大了,显示和隐藏的开销较小

 问题5:v-if和v-for优先级

v-for的优先级高于v-if

***是在源码中体现的:function getElement

9512858b5ea94640a70ad4df9ee3a399.jpeg

问题6:ref是什么?

来获取dom的

<img ref='imgs' src='../assets/logo.png' id='img'>mounted(){console.log(document.getElementById('img')) // 一种获取dom的方式console.log(this.$refs.imgs)
}

问题7:nextTick是什么?

来获取更新后的dom内容

对于组件,是先执行同步的,再执行异步的

created(){console.log(11)this.$nextTick(() => {console.log(333)})
}mounted(){conosle.log(22)this.$nextTick(() => {console.log(444)})
}// 输出的结果为
11
22
333
444

 组件中会出现这样的情况:数据更新了,但是视图没有更新

<button @click='btn' ref='box'> {{ str }} </button>data(){return {str: '123'}
}methods:{btn () {this.str = 'bbbbbb'console.log(this.$refs.box.innerHTML)  // '123',这里获取的是视图里面的数据,视图还没有更新// 使用$nextTick就可以解决这个问题,获取更新后的dom数据this.$nextTick(() => {console.log(this.$refs.box.innerHTML)  // 'bbbbbb'})}
}

 

http://www.lryc.cn/news/486533.html

相关文章:

  • ARM(安谋) China处理器
  • 基于python Django的boss直聘数据采集与分析预测系统,爬虫可以在线采集,实时动态显示爬取数据,预测基于技能匹配的预测模型
  • MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk)
  • 深入Linux基础:文件系统与进程管理详解
  • 缓存及其不一致
  • Leetcode 有效的数独
  • 《Java核心技术 卷I》用户界面中首选项API
  • Android 中的 Zygote 和 Copy-on-Write 机制详解
  • 【人工智能】从零开始用Python实现逻辑回归模型:深入理解逻辑回归的原理与应用
  • 推荐一款功能强大的光学识别OCR软件:Readiris Dyslexic
  • Python爬虫----python爬虫基础
  • css-50 Projects in 50 Days(3)
  • 另外一种缓冲式图片组件的用法
  • 字节青训-小C的外卖超时判断、小C的排列询问
  • PHP 伪静态详解及实现方法
  • Spring Boot 简单预览PDF例子
  • 【魔珐有言-注册/登录安全分析报告-无验证方式导致安全隐患】
  • LabVIEW 使用 Snippet
  • 单片机_day3_GPIO
  • Python小游戏24——小恐龙躲避游戏
  • Python 的多态笔记
  • go module使用
  • c ++零基础可视化——数组
  • CVE-2024-2961漏洞的简单学习
  • 计算机组成原理笔记----基础篇
  • TheadLocal出现的内存泄漏具体泄漏的是什么?弱引用在里面有什么作用?什么情景什么问题?
  • AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型
  • CTF-RE 从0到N:RC4
  • HbuilderX 插件开发-模板创建
  • 打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问