双向绑定如何实现
双向绑定是通过v-model指令来实现的。v-model指令可以将表单控件的值与Vue实例中的数据进行双向绑定。当表单控件的值发生变化时,Vue实例中对应的数据也会随之更新,反之亦然。这样就实现了数据的双向绑定。
自定义指令如何实现
全局:Vue.directive("focus",{})
局部:directives:{focus:{}}
何时使用自定义指令
promise的执行顺序
1.三种状态
Pending(待定):Promise对象初始状态为Pending(待定),表示异步操作尚未完成。
Fulfilled(已完成):当异步操作成功完成时,Promise状态变为Fulfilled(已完成),并调用then()方法中的回调函数来处理结果数据。
Rejected(已拒绝):当异步操作失败时,Promise状态变为Rejected(已拒绝),并调用catch()方法中的回调函数来处理错误信息。
父子组件的信息传递
cookies,session,webStorage
cookies:存在客户端,有两种,1.会话级的,2.持久性的,会话级的存在浏览器,不需要定时长,持久性的存在本地,需要定时长;
session:存在服务端,更安全;
webStorage:存在客户端;local永久的,session会话级的(关闭浏览器就没了)
session是通过cookies来工作的,因为一般用cookies存储会话标识符
vuex
mutation:同步
action:异步,但不能修改state
vuex和全局变量的区别:
vuex是响应式的
vuex和localStorage的区别:
localStorage存在本地,也就是磁盘里
vuex存在内存里,读取速度更快
回流和重绘
回流:比较严重,有大小属性等变化的时候导致整个页面或者部分页面重新渲染
重绘:只对某个元素的重新渲染
如何减少出现这两种情况:
减少css表达式(只要有事件就会触发计算)
减少dom操作
脱离文档流,用flex或者absolute或者fixed
指令
v-for和v-if优先级:先循环再判断,所以用template套在外面进行判断是否显示,节约时间
vue3新功能
Composition API
用setup代替了vue2中的data,methods等选项式api
proxy和defineProperty
Teleport
一般在弹窗的时候让弹窗绑定到body下,这样就不用考虑有多少父级、怎么设zindex了
(elementplus的模态窗的append-to-body就是用的这个)