Vue2 与 Vue3的面试题

1.Promise有几种状态

pending(进行中)  fulfilled(已成功)  rejected(已失败)

data(){
		return{

		}
	},
	create(){
		const result = this.ganaretor()
		result.next.value.then((res)=>{console.log(res);}) // 解决一直.then()方法问题
	},
	methods:{
		* ganaretor(){
			yield axios.get('httpts')
			yield axios.get('https')
		}

 2.Vue2.x 生命周期

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

3.谈谈你对keep-alive的了解

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

当用户在首页点击不同页面时,可以根据数据或者id来判断是否重新发送请求,激活时会触发actived钩子函数

4.v-if和v-show区别

1. 展示形式不同
v-if是 创建一个dom节点
v-show 是display:none 、 block

2. 使用场景不同
初次加载使用v-if,页面不会加载盒子
频繁切换使用v-show,因为创建和删除的开销太大了

5.v-if和v-for优先级

在Vue2中v-for的优先级比v-if高 在源码中的genElement()提现

6.ref是什么?

获取dome元素的

$ref通信弊端我认为是两个:
1.因为获取组件实例是要在组件渲染的情况下才能回去,所以如果你想在组件未渲染的时候去通过$ref调用子组件里面的内容的话,会报错,因为此时子组件还没渲染,所以ref拿到的是undefined
2.如果通过ref去修改子组件的数据的话,会导致在子组件里面排查数据来源的时候,来源不好分析,混乱,使得接收数据的来源难以被定位,尤其是在vue2里面,不像vue3那样能直接在子组件里面显式的暴露属性便于排查
这是我认为的ref的两个缺点

7.nextTick是什么?

把回调函数推迟到下次DOM周期更新后再执行

使用场景:页面dom内容发生改变,但是获取dom内容还是不变的

8.路由导航守卫有那些?

见20

9.scoped原理?

1. 作用:让样式在本组件生效,不影响其他组件。
2. 原理:给DOM节点添加自定义属性data-hash值,然后在css使用属性选择器来添加样式。

10.Vue中如何做样式穿透

11.computed、watcht有什么区别?

1. computed vs watch 区别
    computed是有缓存的 watch没有缓存
    computed不能做异步请求,watch可以做异步请求,computed可以做到的,watch也可以做到
2. computed vs watch区别
    watch是监听数据或者路由发生了改变才可以执行
    computed计算某一个属性的改变,如果某一个值改变了,计算属性会监听到进行返回

12.props和data优先级谁高?

props ===>  methods ===> data ===> computed ===>watch
从源码可以看出

<template>
  <div class="child">
    {{msg}}
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: '我是子组件'
    }
  },
  props: {
    msg: {
      type: String,
      default: ''
    }
  },
  created() {
    console.log(this.msg) // hello world
  }
}
</script>

<style>
</style>

13.Vuex有哪些属性

state、getters、mutations、actions、modules

state 类似于组件中data,存放数据
getters 类型于组件中computed
mutations 类似于组件中methods
actions 提交mutations的
modules 把以上4个属性再细分,让仓库更好管理

14.Vuex是单向数据流还是双向数据流?

Vuex是单向数据流

15.Vuex如何做持久化存储

Vuex本身不是持久化存储

1. 使用localStorage自己写
2. 使用vuex-persist插件

16.Vue设置代理

创建. vue.config.js

module.exports = {
  publicPath:'./',
  devServer: {
    proxy: 'http://localhost:3000'
  }
}
这样打包后请求路径是不对的
项目打包后出现404的原因,因为项目打包后会生成index.html文件,但是请求跟路径是login

17.Vue项目打包上线

1. 自测==>修改路由模式
2. 代理不生效,使用ENV
3. 修改路径

项目打包出现404、空白页问题
1、路径问题  解决办法 vue.config.js{ publicPath: './' } // 默认是'/'
2、路由模式问题 解决方法:需要后端做重定向 因为我们打包是生成index.html文件,重定向到这个路径


代理和环境变量

感觉可以从多方面分析这个问题吧 ?   比如打包 分包 压缩 或者 封装  或者用户体验 或者 懒加载精灵图 svg 重回重流或者cdn这些?

图片资源懒加载
对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。这样对于页面加载性能上会有很大的提升,也提高了用户体验。我们在项目中使用 Vue 的 vue-lazyload 插件:

(1)安装插件

npm install vue-lazyload --save-dev

(2)在入口文件 man.js 中引入并使用

import VueLazyload from 'vue-lazyload'

然后再 vue 中直接使用

Vue.use(VueLazyload)

或者添加自定义选项

Vue.use(VueLazyload, {
preLoad: 1.3,
error: 'dist/error.png',
loading: 'dist/loading.gif',
attempt: 1
})

(3)在 vue 文件中将 img 标签的 src 属性直接改为 v-lazy ,从而将图片显示方式更改为懒加载显示:

<img v-lazy="/static/img/1.png">

以上为 vue-lazyload 插件的简单使用,如果要看插件的更多参数选项,可以查看 vue-lazyload 的 github 地址。

18.Vue路由模式 

路由模式有俩种:history、hash
区别:
    1. 表现形态不同
            history:http://localhost:8080/about
            hash:http://localhost:8080/#/about
    2. 跳转请求
            history : http://localhost:8080/id   ===>发送请求
            hash       : 不会发送请求
    3. 打包后前端自测要使用hash,如果使用history会出现空白页

19.Vue路径传值 

1. 显式
    http://localhost:8080/about?a=1
    1.1 传:this.$router.push({
              path:'/about',
              query:{
                  a:1
              }
          })
  1.2 接:this.$route.query.a

2. 隐式
    http://localhost:8080/about
    2.1 传:this.$router.push({
              name:'About', // 这个name要跟路由配置name要一致
              params:{
                  a:1
              }
          })
  2.2 接:this.$route.params.a

 20.路由导航守卫有哪些

全局、路由独享、组件内

1. 前置路由守卫
    beforeEach、beforeResolve、afterEach
2. 路由独享
    beforeEnter
3. 组件内
    beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave

使用场景:判断是否登录,如果登录就next否则就跳转到登录页面

21.Vue组件之间通信有哪些

1.父子之间组件传递

        props $emit

        $parent  $root

        ref

        $attrs

2. 兄弟组件

        $parent $root \ eventButs \ vuex

3.跨层级组件传递

        eventBus \ vuex \ provide inject

        

感觉可以从多方面分析这个问题吧 ?   比如打包 分包 压缩 或者 封装  或者用户体验 或者 懒加载精灵图 svg 重回重流或者cdn这些?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vulnhub靶场之driftingblues-3

一.环境搭建 1.靶场描述 get flags difficulty: easy about vm: tested and exported from virtualbox. dhcp and nested vtx/amdv enabled. you can contact me by email for troubleshooting or questions. This works better with VirtualBox rather than VMware 2.靶场…

【前端面试3+1】01闭包、跨域、路由模式

一、对闭包的理解 定义&#xff1a; 闭包是指在一个函数内部定义的函数&#xff0c;并且该内部函数可以访问外部函数的变量。闭包使得函数内部的变量在函数执行完后仍然可以被访问和操作。 特点&#xff1a; 闭包可以访问外部函数的变量&#xff0c;即使外部函数已经执行完毕。…

天锐绿盾|公司如何防止员工拷贝电脑资料?

#天锐绿盾# 天锐绿盾是一款针对企业数据安全设计的终端安全管理软件&#xff0c;用来防止员工拷贝电脑资料的具体措施包括&#xff1a; www.drhchina.com PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 1. **文件透明加密…

10.对象的使用,遍历

什么是对象 其实就是map那种键值对的存储形式&#xff0c;别的语言也有&#xff0c;老规矩&#xff0c;和别的语言差不多的就在给pink老师打一波广告。 常见的对象操作&#xff0c;其实没啥直接上代码吧 <!DOCTYPE html> <html> <head><meta charset&…

网络套接字补充——UDP网络编程

五、UDP网络编程 ​ 1.对于服务器使用智能指针维护生命周期&#xff1b;2.创建UDP套接字&#xff1b;3.绑定端口号&#xff0c;包括设置服务器端口号和IP地址&#xff0c;端口号一般是2字节使用uint16_t&#xff0c;而IP地址用户习惯使用点分十进制格式所以传入的是string类型…

【常见面试题】JS 发布者、订阅者模式

面试中经常出现问到如何实现JS 发布者、订阅者模式。下面是ES5实现发布订阅模式。 1、直接上代码。 function EventEmitter() {this.events {}; }; // 订阅者 EventEmitter.prototype.on function(ename, callback) {if (!this.events[ename]) {// 初始化创建订阅&#xff…

C++ 控制语句(二)

一 break continue和goto语句 1 break语句 在switch语句中&#xff0c;分隔case子句&#xff0c;跳出switch语句。 在循环语句中可以立即终止循环语句的执行。 2 continue语句 功能:在一次循环过程中,跳过continue语句以下的语句,直 接进入下一次循环操作。 3 goto语句 …

软考98-上午题-【信息安全】-防火墙

一、考试概述 该内容与计算机网络关联。 分值&#xff1a;2分 二、防火墙 防火墙 (Firewall) 是建立在内外网络边界上的过滤封锁机制&#xff0c;它认为内部网络是安全和可信赖的&#xff0c;而外部网络是不安全和不可信赖的。 防火墙的作用是防止不希望的、未经授权地进出…

CCF-CSP认证考试 202303-5 施肥 35/60/75/100分题解

更多 CSP 认证考试题目题解可以前往&#xff1a;CSP-CCF 认证考试真题题解 原题链接&#xff1a; 202303-5 施肥 时间限制&#xff1a; 2.0s 内存限制&#xff1a; 1.0GB 问题描述 春天到了&#xff0c;西西艾弗岛上的 n n n 块田地需要施肥了。 n n n 块田地编号为 1 , 2…

Qt消息机制和事件

Qt消息机制和事件 Qt消息机制和事件--2 事件 事件&#xff08;event&#xff09;是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘&#xff0c;或者是窗口需要重新绘制的时候&#xff0c;都会发出一个相应的事件。一些事件在对用户操作做出响应时发出&…

【数据结构】顺序表的实现——静态分配

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;数据结构 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

matplotlib画图:子图中坐标轴与标题重合...

如下图 只要在代码最后加入 plt.tight_layout() 就可以自动调节

江苏开放大学2024年春《市政管理学050011》第一次形考作业参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题…

C语言编译和链接理解

一. 翻译环境和运行环境 二. 翻译环境&#xff1a;预编译编译汇编链接 三运行环境 一. 翻译环境和运行环境 &#xff1a; 1.翻译环境和运行环境&#xff1a;在ANSI C的任何⼀种实现中&#xff0c;存在两个不同的环境。第1种是翻译环境&#xff0c;在这个环境中源代码被转换为…

散热风扇220v交流12v直流12038轴流风机配电箱机柜散热风扇15050

品牌&#xff1a;威驰 颜色分类&#xff1a;11025风扇220v含油,11025风扇220v纯铜双滚珠,12025风扇220v含油,12025风扇220v纯铜双滚珠,12025风扇24V纯铜双滚珠,12025风扇12V纯铜双滚珠,12038风扇220v含油,12038风扇110V含油,12038风扇220v纯铜双滚珠,12038风扇110v纯铜双滚珠,…

如何把PNG图片转换成CAD图纸DWG格式

环境&#xff1a; CAD2021 PNG图片 问题描述&#xff1a; 如何把PNG图片转换成CAD图纸DWG格式 解决方案&#xff1a; 将PNG图像转换为CAD文件&#xff08;如DXF或DWG格式&#xff09;是设计和工程领域中常见的需求之一。幸运的是&#xff0c;有几种工具和软件可以帮助完成…

幻兽帕鲁服务器多少钱?2024年Palworld服务器价格整理

2024年全网最全的幻兽帕鲁服务器租用价格表&#xff0c;阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月&#xff0c;阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全&#xff1a; 阿里云幻…

Java异常机制

异常体系图 Throwable Throwable 是 Java 语言中所有错误与异常的超类。 Throwable 包含两个子类&#xff1a;Error&#xff08;错误&#xff09;和 Exception&#xff08;异常&#xff09;&#xff0c;它们通常用于指示发生了异常情况。 Throwable 包含了其线程创建时线程执…

计算机组成原理 浮点数溢出

阶码同样有位数限制 浮点数的溢出并不以尾数溢出来判断&#xff0c;尾数溢出可以通过右规操作得到纠正。运算结果是否溢出主要看结果的指数是否发生了上溢&#xff0c;因此是由指数上溢来判断的。可能导致溢出的情况&#xff1a;即所有涉及阶码运算的情况 右规和尾数舍入&…

HBase Shell基本操作

一、进入Hbase Shell客户端 先在Linux Shell命令行终端执行start-dfs.sh脚本启动HDFS&#xff0c;再执行start-hbase.sh脚本启动HBase。如果Linux系统已配置HBase环境变量&#xff0c;可直接在任意目录下执行hbase shell脚本命令&#xff0c;就可进入HBase Shell的命令行终端环…