学习

21 阅读2分钟

非对称加密交换会话密钥,对称加密交换数据。 https协议需要服务端发送给客户端公钥,客户端生成会话密钥用公钥加密发送给服务端,服务端收到数据后用对应的私钥解密。得到会话密钥。 对称加密加密和解密的钥匙都是同一把,非对称加密加密和解密的钥匙不同。 Object.defineProperty和Proxy的差别 一个监听对象属性,不能监听对象新增和删除的属性。一个监听整个对象,可以对对象的增删改查进行监听。 一个需要手动书写getter和settle方法,实现对对象属性的读取和设值,用proxy不需要书写getter和settle函数。 proxy是原生的,Object.defineProperty是基于js的内部引擎实现的,因此在读取速度和性能上,proxy的性能速度更快。 key: 用key渲染,可以唯一标识元素,追踪元素的增删改查操作,如果不加key,默认会用index,不同的元素可能会复用相同的index,而vue会进行性能优化,可能会对具有相同key的元素进行就地复用,导致可能在列表中新增删除对象的时候,视图不能更新。 v-if和v-show:v-if显示true和false,可能会直接影响dom元素是否加载到dom树上,而v-show都会将dom元素加载到dom树上,通过css来控制元素的显示和隐藏,v-show适合需要频繁切换元素显示和隐藏的情况,而v-if需要较少控制元素显示和隐藏的情况,因为频繁进行dom节点的新增和删除会耗费性能。 computed:会监听多个响应式对象属性实现计算返回一个数据,具有缓存,不能实现异步加载。读取在组件挂载之前,computed在getter函数收集的依赖是自己属性对应的watcher,而data在getter函数收集的依赖是页面中定义属性的watcher。 计算属性的定义是函数和getter() computed函数监听的对象属性是响应式的。 data prop定义的数据是响应式的。 vue-loader会将SFC拆分成三个模块,template,script,style然后去匹配webpack中定义的rules。 template会经过vue compiler转化成。 style会经过css转化到元素的样式。 用render函数returnVNode会生成真实DOM。 VNode的写法h(tag,props,子组件) 父组件如果没有设置宽高,那么如果子组件设置了浮动,就会脱离文档流导致父组件坍塌,因此可以在父组件的伪类上清除浮动,clear:both 布局的方法:flex,grid,position,float。 写一个message的api。 自定义指令: