vue

介绍些MVVM(数据的双向绑定)

M:model数据模型
V:view视图界面
VM:作为桥梁负责沟通模型和视图
关键步骤:
1.实现数据监听器Observer,用object.defineProperty()重写数据的get/set。值更新就在set中通知订阅者更新数据
2.实现模板编译compile,深度遍历dom树,对每个元素节点的指令模板替换数据以及订阅数据
3.实现watch用于连接Observer和compile,能够订阅并接受每一个属性的变动的通知,执行指令绑定的相应的回调函数,从而更新数据

MVC和MVVM其实区别并不大。都是一种设计思想。主要就是MVC中Controller演变成MVVM中的view Model。MVVM主要解决了MVC中大量的DOM操作才使页面渲染性能降低,加载速度变慢,影响用户体验

watch:对属性进行监听,允许我们执行异步操作,限制我们执行该操作的频率,并在得到结果之前,设置中间转态

vue双向数据绑定

核心就是数据劫持+发布、订阅者模式:vue使用的是Object.defineproperty()通过监听他的set和get事件,监听对数据的操作,从而触发数据同步
Object.defineproperty () 的缺陷:

只能对属性进行数据劫持,并且需要深度遍历整个对象
对于数组不能监听数据的变化

而proxy原生支持监听数据的变化,并且可以直接对整个对象进行拦截,所有vue 在下个版本中使用proxy代替Object.defineproperty()

生命周期函数

new Vue(创建一个Vue对象)---- beforeCreate ----- observe Data(开始监听data对象的数据变化)---- init event(vue内部事件初始化)---- created()---- compile(编译模板,把data和template生成html)---- beforeMount(还没有生成DOM)---- mounted(挂载完成,也就是模板中的html渲染到浏览器)---- beforeupdate ---- update ---- beforeDestory ---- destoryed

ajax请求最好放在created里边,页面可以访问到this
关于dom操作要放在mounted 里边,在mounted 前还没有生成DOM

Vue的SPA 如何优化加载速度
1、减少入口文件体积
2、静态资源本地缓存
3、开启Gzip压缩
4、使用SSR、nuxt.js

模块化

基本概念:

1、在js中,一个模块就是实现特定功能的(js)文件
2、遵循模块的机制,想要什么就加载什么模块

js实现模块化规范有:

1、AMD、浏览器 、requirejs、commonjs、nodejs、es6的import/export

解决问题:命名冲突、文件依赖、模块的复用、同意规范和开发方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值