知识点总结
vue中key的原理?
v-for时 设置key 就是给每一项遍历加上id 重复的元素将不会再次出现
怎样理解虚拟dom?
虚拟dom就是未挂载到真实dom上
虚拟dom会i进行频繁的修改 进行比较 最后渲染到真实dom 减少过多的dom排版和损耗
call,apply,bind的区别?
他们都有两个参数
第一个参数都指向this
call第二个参数传入的是一个参数列表,和apply有区别
apply第二个参数是函数接受的参数,以数组的形式传入
bind后面传入的也是一个参数列表(但是这个参数列表可以分多次传入
spa首屏加载慢是因为什么原因?
1.网络延迟大
2.文件资源过大
3.脚本运行堵塞
都有什么解决方案
1.可以减少文件资源体积
2.开启srr加速
3.静态资源本地缓存
4.图片资源压缩打包
什么是ssr
srr解决方案 后端渲染 前端拿到内容按照spa的方式运行
ssr就是一个在spa页面上改良的渲染
keep-alive
是vue中的内置组件,能在组件切换中将状态保留在内存,防止渲染dom
谈谈对vue的理解?
vue就是 一款 创建用户界面的js开源的mvvm框架 双向绑定 不操作真实domvue和react对比?
都是组件化思想,react是单向数据流 vue是双向数据流
react使用diff 队列比较需要保存那些数据 然后统一更新到dom vue是双向流 是边对比边更新dom
为什么像页面添加对象却没有刷新页面?
可能是应为没有经过响应式对象object.property的拦截。因为vue2是通过property来进行响应式数据的,
怎么解决?
可以通过vue.set为vue来添加一个响应式property
v-show和v-if的区别?
v-show是通过display none/block 来控制dom元素的显示与隐藏一直存在于真实dom中,
v-if是通过true/flase来来控制元素的添加与删除 v-show 是初始渲染消耗比较高 v-if是切换时消耗比较高
组件是什么?
在vue中每一个.vue文件都是一个组件
组件的优势 降低耦合度 提高维护性 方便调试
插件是什么?
为vue添加全局功能 可通过npm i 进行安装
两者的区别?
组件就是来构成业务模块的,插件就是对vue的增强和补充
组件通信方式
父子传值:props ,ref,$emit,兄弟组件传值:$bus,$parent 复杂关系组件:vuex
什么是双向绑定?
其实就是mvvm的数据双向绑定的工作原理,mvvm就是 通过 业务逻辑层 viewmodel 将数据层v-model和view视图层进行数据绑定
为什么要有nexttick?
因为当我们每一次变化数据时就会更新一次视图,如果我们使用nexttick机制就只会更新一次 大大节约了资源消耗
slot就是vue的插槽 用来组件的分发和扩展
插件和组件的区别?
插件只是对vue的增强和补充 vue中.vue文件都可以是组件
什么是修饰符?
vue中的修饰符有很多,比如案件修饰符 @click.left/right ,stop阻止事件冒泡 trim消除表单空格
什么是指令?
在vue中带v-的行内都是指令,除了常用的指令还可以自定义指令,有全局注册和局部注册,全局注册vue.redirective第一个参数是指令名称,不需要带v- ,第二个参数可以是一个对象也可以是一个函数,局部注册是写在options内,
动态给vue的data添加一个新的属性时会发生什么?怎样解决?
vue是不能在vue中添加响应式属性的,但是我们可以通过 .set 和object.assign对vue添加动态属性,添加少的话可以使用vue.set()多的话用object.assign
什么是回调地狱,回调函数内多层嵌套回调函数的代码形式,嵌套很深的话,就是回调地狱
怎么解决?可以使用promise
promise它可以支持链式调用 就是他里面有两个参数 第一个参数是reslove成功reject代表失败
然后可以使用ansyc 和await来解决异步
v3的设计目标是什么? 做了那些优化?
更小更快更加友好,
v3的性能提升主要表现在哪些方面?
编译阶段:diff算法,静态文件,读取速度提升,ssr优化
vue2 采用defineProperty来劫持整个对象 v3采用proxy重写了响应式系统
var let const 的区别?
var 是声明一个全局变量
let是全局但是不能重复声明同一个变量
const是声明一个常量 声明之后常量的值不能变
常用的选择器
标签 类 id
标签《类《id
适配方案 rem 媒体查询
proxy的用法
Proxy为 构造函数,用来生成 Proxy实例
var proxy = new Proxy(target, handler) 第一个参数可以拦截任何形式的对象,handler通常以函数作为属性的对象
vue2使用object.defineProperty vue3使用proxy
defineProperty get,set
原型和原型链
每一个对象都有一个原型对象prototype,每个原型对象指向我们的 构造函数 _proto_指向我们的原型对象prototype
如果我们需要请求数据将去原型对象将去原项链上一层找 找不到一直找
闭包就是函数内部的函数,内部函数可以访问外部变量 外部变量访问不到内部数据
优点:延长局部变量的生命周期。
缺点:导致函数的变量一直保存在内存中,过多的闭包可能会导致内存泄漏。
什么是websocket ?
websocket就是网络传输协议 在用户端和服务器之间进行握手。两者就可以建立连接 传输数据
什么是get和post?
get请求用于获取一个数据,但是get的参数会放在url里面 ,post会存储在浏览器
post请求用于提交一个数据
vue 双向绑定
v-model 当用户填写表单,view状态被同时更新 同时model状态自动更新
ViewModel就是 数据变化后更新视图,试图变化后更新视图
vue2 是面向对象式编程 ,vue3是函数式编程 vue3速度更快,体积更小 接近原生
vue是创建用户界面的js开源框架
vuehexin mvvm model-view-viewmodel 双向绑定
组件是什么?
vue每一个.vue文件都可以视为一个组件
优势:
降低耦合度
调试方便
提高可维护性
插件就是为vue提供更为丰富的资源
vue组件通信有哪些
props $emit 使用ref vuex eventbus
slot 插槽为组件提高更好的复用性扩展性
默认插槽
直接插入
具名插槽
用name=“”打标记 然后#引用
token的原理
token是一个令牌 当用户第一次登陆的时候 服务器生成一个 token进行加密并将此token返回给客户端 以后用户登录只需要带上这个token请请求服务端解密数据即可
生命周期--v2 v3 react
基础的模板语法 vif vshow vfor
基础财值---变量的声明 var let const 解构赋值
函数的区别
this指向
深copy的解决方案
多个异步请求 如何解决回调地狱,如果知道所有请求结束了
组件通信----vue react
受控&非受控
v2 v3对比 y和re的对比
项目里选到的问题
git的命令 熟悉
封装--抽离组件成型--分析--封装
共有 0 条评论