SF
acco
acco
注册登录
关注博客
注册登录
主页
关于
RSS
手撸一个 MVVM 不是梦
aco
2018-06-26
阅读 12 分钟
2.4k
在实现 VUE 中 MVVM 的系列文章的最后一篇文章中说道:我觉得可响应的数据结构作用很大,在整理了一段时间后,这是我们的最终产出:RD - Reactive Data ok 回到整理,这篇文章我们不研究 Vue 了,而是根据我们现在的研究成果来手撸一个 MVVM。 简单介绍 RD 先看看下我们的研究成果:一个例子 {代码...} 写法上与 Vue 的...
VUE - MVVM - part13 - inject & 总结
aco
2018-05-14
阅读 3 分钟
2.2k
在上一步我们实现了,父子组件,和 props 一样 provide / inject 也是基于父子组件实现的,相比于 props 它的实现还要更简单一点。我们先来看看官网上对 provide / inject 的描述。
VUE - MVVM - part12 - props
aco
2018-05-10
阅读 5 分钟
1.8k
在上一步,我们实现 extend 方法,用于扩展 Vue 类,而我们知道子组件需要通过 extend 方法来实现,我们从测试例子来入手,看看这一步我们需要实现什么:
VUE - MVVM - part11 - Extend
aco
2018-05-07
阅读 4 分钟
2k
在 Vue 中有 extend 方法可以扩展 Vue 的实例,在上一步中,有一些实现是必须要通过子父组件才能实现,而子组件相当于一个特殊的 Vue 实例,所以这步,我们先把这个扩展实例的方法实现。
VUE - MVVM - part10 - Computed
aco
2018-05-03
阅读 6 分钟
1.7k
看这篇之前,如果没有看过之前的文章,移步拉到文章末尾查看之前的文章。 回顾 先捋一下,之前我们实现的 Vue 类,主要有一下的功能: 属性和方法的代理 proxy 监听属性 watcher 事件 对于比与现在的 Vue 中的数据处理,我们还有一些东西没有实现:Computed、props、provied/inject。 由于后两者和子父组件有关,先放一...
VUE - MVVM - part9 - Vue
aco
2018-04-26
阅读 6 分钟
1.8k
激动人心的时候即将来临,之前我们做的 8 步,其实都在为这一步打基础,这一步,我们来简单实现一个 Vue 对象,还没有看过之前代码的同学,请确认看过之前的文章。
VUE - MVVM - part8 - 优化Event
aco
2018-04-25
阅读 4 分钟
1.6k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在上一步我们实现了一个简易的事件管理的类,接下来我们把它给优化下,方便我们的使用。主要优化内容: 方便为多个事件添加同一个函数 方便为一个事件添加多个函数 有针对性的取消事件的函数 第一点和第二点都要修改 $on 函数,所以我们一起改...
VUE - MVVM - part7 - Event
aco
2018-04-23
阅读 3 分钟
1.9k
在标准浏览器中,我们经常使用:addEventListener 来为一个 DOM 添加一个事件(click、mousemove、tap等)。
VUE - MVVM - part6 - Array
aco
2018-04-20
阅读 5 分钟
2.2k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在前面的几个 step 中,我们实现对象的属性的监听,但是有关于数组的行为我们一直没有处理。我们先分析下导致数组有哪些行为: 调用方法:arr.splice(1, 2, 'something1', 'someting2') 直接赋值:arr[1] = 'something' 解决行为一 首先我们知...
VUE - MVVM - part5 - Observe
aco
2018-04-16
阅读 4 分钟
2.1k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在 step4 中,我们大致实现了一个 MVVM 的框架,由3个部分组成: defineReactive 控制了对象属性,使变为可监听结构 Dep 收集管理依赖 Watcher 一个抽象的依赖 defineReactive 和 Dep 改造了对象下的某个属性,将目标变成了观察者模式中的目标...
VUE - MVVM - part4 - 优化Watcher
aco
2018-04-13
阅读 4 分钟
1.8k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 首先我们思考一下截止当前,我们都做了什么 通过 defineReactive 这个函数,实现了对于数据取值和设置的监听 通过 Dep 类,实现了依赖的管理 通过 Watcher 类,抽象出了对象下某个属性的依赖,以及属性变换的 callBack 发现问题 对比 Vue 的 M...
VUE - MVVM - part3 - Watcher
aco
2018-04-12
阅读 4 分钟
2.1k
在 step2 中,我们实现了一个管理依赖的 Dep ,但是仅仅使用这个类并不能完成我们想实现的功能,而且代码的解耦上也有点小问题。以下是在 step2 中最后说的几个问题:
VUE - MVVM - part2 - Dep
aco
2018-04-11
阅读 3 分钟
1.9k
在上一篇我们大概实现了,Vue 中的依赖收集和触发,但我们仅仅是将依赖维护在一个内置数组中,这样做虽然容易理解,但毕竟不好维护,为了更容易的维护这些依赖,我们来实现一个维护依赖的类。
VUE - MVVM - part1 - defineProperty
aco
2018-04-11
阅读 3 分钟
2.6k
在 VUE 中关于如何实现在网上可以搜出不少,在看了部分源码后,梳理一下内容。 首先,我们需要了解一下 js 中的一个 API :Object.defineProperty(obj, prop, descriptor) 一般情况下我们为一个对象添加一个属性一般都会这么写 {代码...} Object.defineProperty 也能做到同样的效果 {代码...} 这样写虽然代码量多了不少,...
vue2 实现 div contenteditable="true" 类似于 v-model 的效果
aco
2017-02-06
阅读 4 分钟
32.7k
在 vue2 中对表单控件有着良好的双向数据绑定机制,但是对于要特定实现某些功能的输入时,我们就不得不使用到 contenteditable="true" 的 div ,而在这个 div 上是使用 v-model 是没有效果的。那么问题就来了,输入是非常需要双向绑定的,这里的双向数据绑定该如何实现?