摘要: 双向数据绑定无非就是,视图 => 数据,数据 => 视图的更新过程 以下的方案中的实现思路: 定义一个Vue的构造函数并初始化这个函数(myVue.prototype._init) 实现数据层的更新:数据劫持,定义一个 obverse 函数重写data的set和get(myVue.prototype 阅读全文
posted @ 2020-07-25 20:03 vickylinj 阅读(301) 评论(0) 推荐(0) 编辑
摘要: Object.defineProperty() 和 ES2015 中新增的 Proxy 对象,会经常用来做数据劫持. 数据劫持: 在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果.数据劫持最典型的应用 双向的数据绑定(一个常用的面试题), Vue 2.x 利用 阅读全文
posted @ 2020-07-25 13:55 vickylinj 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 需求: 原理: 拖动效果的实现基本都是dom操作来实现的,通过拖动分隔线,计算分隔线与浏览器边框的距离(left),来实现拖动之后的不同宽度的计算;当拖动分隔线1时,计算元素框left和mid;当拖动分隔线2时,计算元素框mid和right;同时设置元素框最小值以防止元素框拖没了(其实是被遮住了)。 阅读全文
posted @ 2020-07-25 13:31 vickylinj 阅读(1389) 评论(0) 推荐(0) 编辑
摘要: 比如有父组件 Parent 和子组件 Child,如果父组件监听到子组件挂载 mounted 就做一些逻辑处理,可以通过以下写法实现: // Parent.vue <Child @mounted="doSomething"/> // Child.vue mounted() { this.$emit( 阅读全文
posted @ 2020-07-25 13:24 vickylinj 阅读(1041) 评论(0) 推荐(0) 编辑
摘要: 前言 vue通信手段有很多种,props/emit、vuex、event bus、provide/inject 等。还有一种通信方式,那就是 $attrs 和 $listeners,之前早就听说这两个api,趁着有空来补补。这种方式挺优雅,使用起来也不赖。下面例子都会通过父、子、孙子,三者的关系来说 阅读全文
posted @ 2020-07-25 13:16 vickylinj 阅读(12782) 评论(2) 推荐(16) 编辑