[Vue]如何实现全屏遮罩(附Vue.extend和el-message源码学习) 在做个人项目的时候需要做一个类似于电子相册浏览的控件,实现过程中首先要实现全局遮罩,结合自己的思路并阅读了(饿了么)element-ui中el-message的实现,来总结一下Vue中比较好的一种全局遮罩的实现方式. 调用遮罩的方式 一般由两种写法: 1.(类似el-dialog的一种写法) 在html文件中写好结构,控制元素的显示与隐藏的实现遮罩. <div class="container"&…
@Adaptive注解 在上一篇ExtensionLoader的博客中记录了,有两种扩展点,一种是普通的扩展实现,另一种就是自适应的扩展点,即@Adaptive注解的实现类. @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Adaptive { String[] value() default {}; } @Adapt…
Vue原型对象的包装 在Vue官网直接通过 script 标签导入的 Vue包是 umd模块的形式.在使用前都通过 new Vue({}).记录一下 Vue构造函数的包装. 在 src/core/instance/index.js 这个文件是 Vue构造函数的出生地. import { initMixin } from './init' import { stateMixin } from './state' import { renderMixin } from './render' impo…
在进行gevent源码学习一分析之后,我还对两个比较核心的问题抱有疑问: 1. gevent.Greenlet.join()以及他的list版本joinall()的原理和使用. 2. 关于在使用monkey_patchall()之后隐式切换的问题. 下面我将继续通过分析源码及其行为来加以理解和掌握. 1. 关于gevent.Greenlet.join()(以下简称join)先来看一个例子: import gevent def xixihaha(msg): print(msg) gevent.sl…
作者:林冠宏 / 指尖下的幽灵.转载者,请: 务必标明出处. 掘金:https://juejin.im/user/1785262612681997 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 出版的书籍: <1.0-区块链DApp开发实战> <2.0-区块链DApp开发:基于公链> 本次是系列文章,这是第二篇.第一篇在: 以太坊 layer2: optimism 源码学习…
大体思路 (四) 上节回顾: A: 对于生命周期函数将父子组件的函数放到一个数组里面,特定时间点调用,保证父子组件函数都调用到. B: 对于directive,filters,components 等的资源选项,父选项将以原型的形势处理,正式因为这样子,在任何地方都可以用到内部自定义指令. C: 对于watch选项的合并,类似于生命周期,如果父子组件相同的观测字段,将合并为一个数组. 本节内容: props normalizeProps normalizeDirective 规范化 props…
大体思路 (三)    1.钩子函数 自定义策略       LIFECYCLE_HOOKS= []      created = [function(){} , function(){}] 组装方法.      ==> starts[hook]= mergeHook            ==>  mergeHook(parent,child) // 合并parentVal 和childVal  2.资源选项 自定义策略         ==> ASSET_TYPES = []    …
大体思路(十) 本节内容: 1. baseoptions 参数分析 2. options 参数分析 3. parse 编译器 4. parseHTNL 函数解析 // parse 解析 parser--名词--解析器 ==> getShouldDecode() inBroeser // 监听所有的标签 //监听href shouldDecodeNewLines / shouldDecodeNewLinesForHref delimiters: options.delimiters //改变文本插…
大体思路(九) 本节内容: 1. $mount 挂载函数的实现. // 将Vue.prototype.$mount 缓存下来 ==>mountComponet(this,el) { // 组建挂载的时候做的事情 var uodateComponent = function(){ // 1. render返回生产的虚拟节点 // 2. _update 将虚拟节点变为正真的dom } // 渲染函数的观察者对象 初识 Watcher undateComponent被观察目标 new Watcher(…
大体思路(八) 本节内容: 1.Observe 如何响应数组的变化 代理原型 数组变异方法 shell cacheArrProto methods 新添加的数组需要加到显示系统里面,拦截 push等的方法 swith(method){ case:"push"/"unshift" : 存储东西} observer.prototype.observeArray = function(items){ observe(item[i]) } observe ==> va…