【vue回顾系列】01-记录一些对vue的理解,MVVM,特点,与原生对比,注意点

我对vue的简单理解

vue作为一种mvvm视图层框架,比起同样mvvm的react和mvc的angular以及其他的框架来说,学习成本是最低的,这也是vue的魅力之一。

正是因为简单,大大的降低了学习前端项目开发的门槛,对转行人士或者后端想学前端的开发者来说都非常的友好。


什么是MVVM

背景:

  1. web1.0-2.0时期,页面只是静态渲染,更新需要依赖于手动操作dom,比如JQ;
  2. web2.0时期,框架出现,数据驱动(vue的MVVM,react的setState)代替过去;

mvvm的解释:

  • M:model,数据层,比如data中的数据,vuex数据等,基本都是后端提供的。
  • V:view,dom视图层,也就是用户界面。
  • VM:viewModel,视图数据层,通过数据层的数据的处理(例如dom监听,vue指令等),生成用于视图层展示的数据模型,也能通过视图层用户的交互,改变数据层的数据模型。

VM层既连接着M和V,又将二者解耦,开发者只需要关心M和V层,不需要再像过去一样为两边的数据处理而亲力亲为。


vue的特点

  1. 是一个生态,一个渐进式框架;
  2. 相较于其他框架,更加轻量,使用gzip压缩能小到20kb;
  3. 响应式的更新机制;
  4. 学习门槛低;
  5. 以数据为中心,数据驱动的开发思维;
  6. 完全的组件化开发;
  7. 等等;

其中最核心的三大特点是必须记住的:

  1. 响应式
  2. 采用了vdom
  3. 模板编译

与js原生开发

在项目制作的场景下,js的原生开发并不是完全优于框架开发:

  1. 原生开发操作dom十分繁琐,而且dom的获取和操作的性能很差,也没有虚拟dom的算法,当dom数量大的时候会导致大量的重绘和重排,这点框架都处理好了;
  2. 原生js开发采用模块化的开发方式,当项目庞大时,也很容易造成污染,且代码复用率低。框架由于组件化的开发逻辑,代码颗粒度更加细腻,可以把html、css、js拆的很细;
  3. 框架生态丰富且发展的非常迅速,各种技术栈的支持非常友好,项目搭建也快速高效;
  4. 原生js开发采用的是命令式编码,框架是声明式编码。命令式就是你的每次操作都要亲力亲为,声明式就类似你每次声明一个操作,框架就帮你去做了,你不用关系中间的步奏是怎么样的;
  5. 框架的移动端开发支持更加友好,例如react Native;
  6. 更能够应对复杂的页面等等

所以在制作项目中,框架的优点绝对是超过原生开发的,历史的进程与未来的发展就是最好的证明


注意点

在vue中开发时一些注意事项,在面试中有可能会这么问【你在使用vue过程中遇到过哪些坑】

这个题目我认为问的形式不对,问的不是设计缺陷,而是一些注意事项或者一些场景问题。

  • 缓存泄漏问题。在组件销毁阶段应该要注意清除。

  • 响应式监听的缺陷(这种才是真的缺陷)

  • 从页面a滚动到中间,进入页面b再返回页面a,直接回到顶部(1. 可以记录a页面的位置信息 2. keepalive实现3. app混合开发的可以用MPA+App WebView技术,让a和b页面成为栈式堆叠结构,a永不销毁)

  • 模板中对某个特定数据用函数去处理后return显示,会出现不断更新的死循环,用计算属性代替(这个可以不说)。

  • 旧版本的v-if和v-else底层没有绑定key导致,v-if标签上绑定的属性跑到v-else标签上。

  • 基本上可以随便扯哈哈,例如和性能相关的。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值