面试常问题(简述)

1.$nextTick()

  • dom更新是异步的,$nextTick()中的代码会在dom更新后执行保证执行顺序
  • 原理:支持 Promise 的环境中,Promise.then,否则就用setTimeOut 或 setImmediate

2.keep-alive

  • 组件缓存,把组件放入内存中避免销毁和重建

3.混入(重点)mixin

  • 是一个拥有vue组件所有选项的对象 , 这个对象上的所有选项可以加入到.vue的文件中
  • 在组件本身和mixin发生冲突,以组件本身为准
  • 想在项目中每个组件上都某些事情的时候就用到混入mixin
  • 实际应用: 计算项目中所有组件的数量
    每个组件都有mothen钩子函数,渲染时都会执行
    声明一个变量为0,将
    在main.js中调用vue实例的mixin方法传入一个对象,对象中可以声明mothen钩子函数,让变量++,在打印这个变量

4.v-modle原理(重点)

  • <input :vaule="msg" @input="msg=$event.terget.value"/>
  • 将input标签的value属性动态绑定一个变量,通过input事件拿到输入的内容赋值给变量

5.开发中遇到的困难(重点)

6.数组方法

  • arr.map((item,index)=>{ })映射数组
  • arr.forEach((item,index)=>{ })遍历数组
  • arr.filter((item,index)=>{ })
  • arr.sort() 将数组里的项从小到大排序
  • arr.reverse() 反转数组项的顺序。
  • arr.concat(),合并数组,括号里面写内容 ("字符串要加引号"),
  • arr.slice( 1 , 3 )截取数组参数1是开始下标,参数2是结束下标,包括开始不包括结束
  • arr.splice( 2,0,4,6 )动态删除添加
  • arr.every(item=>{return item>3}) 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
  • arr.some(item=>{return item>3}) 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

7.computend()

  • 一个变量是由另一个变量计算处理后得来就用到计算属性
  • 计算属性相比普通函数的优势:计算属性会把计算结果存入内存,依赖项不变直接从内存中取结果,不会重新计算

8.宏任务,微任务

  • JSv8引擎是单线程的,所以耗时任务(异步任务)会交给宿主环境去执行,执行结束后会把回调放到任务队列中排队
  • 此时就有了微任务和宏任务,异步任务的两种分类

9.this.$set()

  • vue2中给data中声明的响应式对象数据添加属性,
    语法: this.$set('对象名','key','value')

10.注册指令

  • 在install方法中参数可以获取vue实例.vue实例上有directive方法用来注册自定义指令,
  • 第一个参数是指令名,第二个参数是对象对象中有逻辑函数,函数有两个形参el,binding,
  • el是绑定的标签,binding是自定义属性值

12.vue3和vue2区别

  • 1.vue3中抛出了两个函数 createVNode()创建虚拟Dom 和 render()挂载到真实Dom上
  • 2.vue2中响应式依赖ES5 Object.defineproperty() 缺陷不能侦听属性的增加 vue3中依赖ES6 Proxy 14种对象操作方法都可以拦截
  • 3.vue2选项式api,vue3组合式api,并且可以混用
  • 4.移除了this关键字,新增setup函数,形参props,{emit}
  • 5.响应式数据在ref函数中声明
    ...

13.虚拟DOM

  • 就是对象,保存了标签名,属性,子节点信息
  • vue3中抛出了两个函数 createVNode()创建虚拟Dom 和 render()挂载到真实Dom上
  • 语法: 引入 improt {createVNode,render} from 'vue'
    创建虚拟Dom const obj = createVNode('标签或者组件',{属性},[子节点])
    渲染真实Dom render(VNode,真实Dom节点)

14.http状态码

  • 200 - 请求成功^^^^
  • 201 - 已创建。成功请求并创建了新的资源
  • 202 - 已经接受请求,但未处理完成
  • 301 - 资源(网页等)被永久转移到其它URL^^^^
  • 303 - 请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。
    今后任何新的请求都应使用新的URI代替
  • 306 - 已经被废弃的HTTP状态码
  • 401 - token过期,请求过期^^^^^
  • 404 - 请求的资源(网页等)不存在,请求失败^^^^
  • 500 - 内部服务器错误
  • 501 - 服务器不支持请求的功能,无法完成请求

15.请求响应拦截器

  • axios.interceptors.response.use(因特撒喷特斯)
  • 请求拦截器:在请求头上添加token
  • 响应拦截器:服务器返回登录状态失效,需要重新登录的时候,跳转到登录页。token过期,token续签

16.路由前置守卫

  • router.beforeEach((to, from, next) => {})
  • 作用:判断用户是否有权限跳转某些路由,to()到哪里去,from()从哪里来,next()放行,next(false)不放行
  • 例如:用户没有登录 而是直接通过修改浏览器 url 来访问网页,这种操作无疑是不安全的。
  • 路由导航守卫可以让我们对用户要跳转的路由做一次检查,符合条件后放行,不符合条件则强制用户跳转登录页面。

17.原生js实现轮播图

  • 维护一个索引值
  • 遍历所有图片 , 把所有图片透明度设置为0 , 在把当前图片根据索引透明度设置为1
  • 使用定时器让索引值++,如果大于图片索引长度就设置为0
  • 注册鼠标移入事件清除定时器 , 鼠标移入事件重新调用定时器
  • 上一张按钮下一页按钮就是注册点击事件让索引++或--

18.输入url地址按下回车发生了什么?

  • 1.输入url地址后,首先进行DNS解析,将相应的域名解析为IP地址;
  • 2.客户端根据IP地址去寻找相应的服务器;本地缓存,远程服务器
  • 3.与服务器进行TCP的三次握手;
  • 4.客户端找到相应的资源库;
  • 5.根据资源库返回页面信息;
  • 6.浏览器根据自身的执行机制解析页面;渲染页面
  • 7.最后服务器将解析信息返回给客户端,进行TCP的四次挥手。
  1. Object.defineProperty 响应式原理?
  • Object.defineProperty() 可以拦截对于对象属性的访问
  • 这个方法中第一个参数是拦截对象名,第二个是对象中的key,第三个是对象
  • 对象中有get和set两个函数,访问对象的属性值时,获取到的就是get函数的返回值
  • 设置对象的属性值时,set函数的参数newvalue就是设置的新值
  • 可以再set函数中将新值赋值给input的value值就实现了数据影响视图
  • 还可通过监听input事件拿到视图中的值赋值给get函数中return的变量实现视图影响数据
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 一、CSS问题 1.flex布局 display:flex; 在父元素设置,子元素受弹性盒影响,默认排成一行,如果...
    陈二狗想吃肉阅读 556评论 0 9
  • 1. 说一下对HTML语义化的理解? 语义化就是选择与语义相符合的标签,使代码语义化,这样不仅便于开发者进行阅读,...
    陈二狗想吃肉阅读 2,144评论 3 16
  • css相关 1. 万能居中 1.margin: 0 auto;水平 2.text-align: center;水平...
    chaocc阅读 954评论 0 2
  • client,page和screen的区别? clientX,clientY是触摸点相对于viewport视口x,...
    change_22fa阅读 1,640评论 1 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,041评论 0 4