【前端vue——系列3】vue框架的优缺点;vue实现双向绑定

系列文章总结

【前端vue——系列1】vue的路由
【前端vue——系列2】vue中的data是函数而不是对象与computed的实现原理
【前端vue——系列3】vue框架的优缺点;vue实现双向绑定
【前端vue——系列4】vuex和angular
【前端vue——系列5】生命周期详讲(vue的生命周期、页面的生命周期)



一、vue框架的优缺点

1.1 优点

  1. 轻量级、易上手、可以有简洁的API提供高效的数据绑定和灵活的组件系统

  2. 组件(component)是vue最强大的功能之一,组件可以扩展HTML元素,封装可重用的代码

  3. 双向数据绑定的实现更容易操作DOM(vue.js)则使用object.defineProperty()方法,监控对方数据的操作,从而可以自动触发数据同步,可以精准的将变更发给绑定的视图,而不是对所有数据都执行一次检测(不同于angular.js)。

  4. vue是单页面应用;使页面局部刷新,不要求每次跳转页面都要请求所有数据和DOM。

  5. vue采用虚拟DOM,不再使用原生的dom操作节点,极大解放dom操作,但具体操作的还是dom不过是换了另一种方式

在这里插入图片描述

1.2 缺点

  1. vue的开发更加依赖一个单独的人,而非团队,它不便于共同开发。
  2. 生态不太成熟,编辑器里语法提示不完善
  3. 首次渲染耗费资源比较大

二、vue实现双向绑定

2.1 原理

双向数据绑定是通过数据劫持结合发布订阅者模式的方式来实现的,也就是说数据和视图同步(数据驱动),数据发生变化,视图也跟着发生变化,视图变化,数据也跟着变化。

  • 订阅发布模式(观察者模式)定义了一种一对多的关系,让多个观察者同时监听一个主题对象,这个主题对象的状态发生变化时就会通知所有观察者对象。
  • 其实现双向数据绑定的核心时Object.defineProperty()方法。

Object.defineProperty: obj:定义其属性上的对象。 prop:定义或修改的属性。
descriptor:具体的改变方法

简单来说,就是用这个方法定义一个值,然后调用里面的get()方法,当我们给这个属性赋值时,又调用了里面的set方法。
在这里插入图片描述


2.2 实现过程

  1. 实现一个监听器observer,用来劫持并监听所有属性,如果有变动就会通知订阅者。
  2. 实现一个订阅者watcher,可以受到属性变化通知并执行相应的函数,从而更新视图。(dep是Observer与Watcher的纽带)
  3. 实现一个解析者compile,可以扫描和解析每个节点的相关指令,并根据初始化模块数据以及初始化相应的订阅器。

在这里插入图片描述


2.3 相关api

主要实现{{}}、v-modal和事件指令的功能。


码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让子弹飞一会儿=>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值