Vue的知识梳理总结及面试可能

本文详细梳理了Vue.js的关键概念,包括双向数据绑定原理、数组更新检测、事件修饰符、v-model实现、计算属性和watcher的区别、虚拟DOM、浏览器加载流程、组件data为何为函数等。还探讨了Vue的生命周期、插槽、动画、路由、父子通信、axios使用以及手机端自适应等实战技巧。
摘要由CSDN通过智能技术生成
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ## Vue的数据驱动原理?数据更新原理?响应式原理?
  1. 数据通过object.defineProperty进行getset拦截。
  2. 通知watcher(观察者模式)订阅发布模式,触发组件重新渲染,创建新的虚拟DOM,对比旧的虚拟DOM,通过diff找出不同,以最小代价更新节点。

什么是Vue?

  1. 核心代表人物 尤雨溪
  2. Vue是饿了么ued团队开发并维护的一个渐进式框架,核心关注视图层
  3. vue的核心是一个允许采用简洁的模板声明式的将数据渲染进DOM系统
  4. m与v没有任何联系,VM=>双向数据绑定

为什么vue中m层改变了,viewmodel知道m层变化,或双向数据绑定的原理?

  1. vue在创建视图时,会将数据配置到vue实例中,然后内部通过object.defineProperty方法,为数据动态添加get和set方法,当获取数据时会触发get方法,当设置对象时会触发set方法;当set方法触发 完成时,进一步watcher触发,数据改变完成了,试图也进行了重新渲染。

数组的更新检测

  1. vue将被侦听的数组的变更方法进行了包裹,所以他们将会触发视图更新
  2. push() 在数组后面添加元素,返回数组的长度
  3. pop() 在数组后面删除一个元素,返回删除的数据
  4. shift() 在数组前面删除一个元素,返回删除的数据
  5. UNshift()
  6. splice() 数组的剪贴,删除,插入
  7. sort() 数组的排序
  8. reserve() 数组的反转
    不会触发视图更新的有:concat() slice()

事件修饰符

  1. stop 阻止事件冒泡
  2. prevent 取消事件默认行为
  3. self 只有在自身上面触发
  4. once 触发一次

v-model 底层实现原理

  1. 内部给输入框绑定value属性,和监听input属性
    修饰符:
    lazy 等光标离开后进行更新操作
    number 若能被parsefloat解析则输出结果否则原样输出
    trim 去掉前后空格

计算属性 及watcher与computed区别

  1. 计算属性会根据现有元素生成一个新的数据,并且两者产生永久性关联,建立缓存关系,当无关数据变动时,计算属性不会重新计算,而直接从缓存取值即可
  2. 区别: watch监听只能是单个的监听,每次监听只能一个变量的修改,计算属性可以依赖多个数据的变化。2.当需要数据变化时执行异步操作或开销较大时用watch

什么是虚拟DOM?

  1. 虚拟DOM就是虚拟对象,属于虚拟数据,真实DOM的一种映射
  2. 内存中生成一棵虚拟DOM
  3. 将内存中的虚拟DOM树初始化渲染成一颗真实DOM树
  4. 当我们修改vue实例中data数据时
  5. 之前的虚拟DOM结合更改后的数据生成一颗新的虚拟DOM
  6. 将此次生成的虚拟DOM与上一次虚拟DOM对比(diff算法)
  7. 将对比后差异的部分进行重新真实的DOM渲染

浏览器加载一个HTML文件的大致流程

  1. 构建DOM树
  2. 构建style rules ,页面样式表
  3. 将DOM树和样式表结合形成render tree(渲染树)
  4. 布局 为每个render 树上的节点确定在显示屏上的精准坐标信息
  5. 绘制 触发每个节点的paint方法

为什么组件的data必须是函数?

因为每个实例可以维护一份被返回对象的独立拷贝

slot插槽

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值