vue3和vue2的区别整理

api及语法

双向绑定原理

  • Vue2使用Object.defineProperty 为每个属性创建getter和setter,通过getter和setter来捕获操作以实现响应式更新; 很多情况下,属性的新增和删除拦截不到(比如数组的长度变化)
  • Vue3使用Proxy,Proxy可以拦截对象和数组的变化,包括新增和删除属性,数组的长度变化等,从而实现更精确的响应式更新

v2 使用object.defineProperty来劫持数据的setter和getter方法,对象改变需要借助api去深度监听;
v3 使用proxy来劫持整个对象,不需要深度监听,性能更好,删除了一些api($on,$once,$off) fiter等,优化了Block tree,solt,diff 算法等

Vue2在data中定义的数据就会自动遍历绑定Object.defineProperty以实现响应式;Vue3中要用ref包装,通过返回值的 .value属性获取响应式的值 ,修改也需要对 .value进行修改.

阅读更多

加密算法介绍

在信息安全越来越受重视的今天,前端的各种加密也变得更加重要。通常跟服务器的交互中,为保障数据传输的安全性,避免被人抓包篡改数据,除了 https 的应用,还需要对传输数据进行加解密。

目前常见的加密算法可以分成三类

1) 对称加密算法:AES、…

2) 非对称加密算法:RSA、…

3) Hash 算法:MD5、…

阅读更多

百度地图与高德地图的相互转化

问题来源:小程序使用的是高德地图,后台的数据来源于百度地图,导致小程序的定位不是太准确

在开发中使用了第三方的数据,由于经纬度使用的是第三方的数组,他们使用的是百度的地图坐标。在项目中使用时,能用百度地图去解析自然是最好的,但是呢,该项目是基于微信小程序的,百度地图针对小程序提供的API功能不是很完善,难以实现想要的需求,所以采用腾讯官方的地图。

将百度地图经纬度转换为腾讯/高德地图经纬度

阅读更多

nodetips

需求

设计师给了一堆任务头像,文件名乱七八糟的,我这边其实就一个循环就渲染出来了,所以得统一按下标重新命名一下,五百多张不可能一张一张改吧,那只能通过程序来循环改了,前端页面仔这可怎么搞?

阅读更多

常用知识总结

– html/css

— css 的布局方式

1.table 布局
2.flex 布局
3.float 布局 4.响应式布局

— 盒子模型

IE 盒子模型:宽高包括 content + padding + bording; box-sizing: border-box
标准盒模型:宽高就是元素的实际宽高 content; box-sizing: content-box

阅读更多