网上有很多博客讲到,React.Vue里的key,与 Virtual DOM 及 DOM diff 有关, 可以用来唯一标识DOM节点,提高diff效率,云云. 这大致是对的,但是,大多讲得语焉不详,像是在背答案. 具体怎么个提效法?为什么说用数组下标当作key是"反模式"?讲了一堆,能不能来个眼见为实,show me the code? 本文以React为例,尝试稍微刨一刨,但又不刨到太底层,以足够帮助理解为度. 1. VNode diff 首先介绍 Virtual DOM 结点(后…
APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了 彻底理解android中的内部存储与外部存储 存储在内部还是外部 所有的Android设备均有两个文件存储区域:"internal" 与 "external" . 这两个名称来自于早先的Android系统,当时大多设备都内置了不可变的(internal storage)及一个类似于SD card这样的可卸载的存储部件(external storage).之后有一些设备将"internal&qu…
key是为Vue中的vnode标记的唯一id,通过这个key,我们的diff操作可以更准确.更快速 diff算法的过程中,先会进行新旧节点的首尾交叉对比,当无法匹配的时候会用新节点的key与旧节点进行比对,然后超出差异. diff程可以概括为:oldCh和newCh各有两个头尾的变量StartIdx和EndIdx,它们的2个变量相互比较,一共有4种比较方式.如果4种比较都没匹配,如果设置了key,就会用key进行比较,在比较的过程中,变量会往中间靠,一旦StartIdx>EndIdx表明oldC…
之前写的关于 vue3 的文章,好多人吐槽:这些API每次使用都要引入一遍,感觉有点麻烦. 今天我们就来看看 vue3 相比 vue2 的优点有些啥? 为啥有些人说:自从写了 ts vue3 再也回不到 vue2 啦! vue3 到底哪里好?有的人回不到 vue2,而有的人去不了vue3!喜欢的点赞收藏,复盘不迷路! 一.Vue3 新增的几个亮点: Performance:性能优化 Tree-shaking :支持摇树优化 Composition API :组合式api 新增组件:Fragmen…
只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件.那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢?今天这篇文章就是主要来说明这个问题的. 首先,我们要知道,在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Storage,即外部存储.比较老的手机,有一个手机内部存储,还有一个SD卡存储,就是分别对应这两种存储位置,因为以…
迭代器跟生成器,与上篇文章讲的装饰器一样,都是属于我的一个老大难问题. 通常就是遇到的时候就去搜一下,结果在一大坨各种介绍博客中看了看,回头又忘记了. 你是不是也是这样呢? 俗话说:好记性不如烂笔头,虽然现在基本不咋用笔写字了,但是还是要好好整理下,起码以后我就不用搜了. 如果现在给你一个列表list_a = [1, 2, 3, 4],让你去迭代它,相信大家都很熟悉,直接用for循环就完事儿, list_a = [1, 2, 3, 4] for i in list_a: print(i) 运行…
vue :class 可以接收 字符串 数组 和 对象 对象里面的key值 根据true或false 显示不显示 https://cn.vuejs.org/v2/guide/class-and-style.html html部分 注意:class <component :is="tagName" :class="classes" :disabled="disabled" @click="handleClickLink"…
vue中:key 和react 中key={} 为了给 vue 或者react 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性 一句话概括就是key的作用主要是为了高效的更新虚拟DOM ref的特性 React的ref有3种用法: 字符串(已废弃) 回调函数 React.createRef() (React16.3提供) 1. 字符串 最早的ref用法. 1.dom节点上使用,通过this.refs[refName]来引用真实的dom节点…
富文本编辑器TinyMCE的使用(React Vue) 一,需求与介绍 1.1,需求 编辑新闻等富有个性化的文本 1.2,介绍 TinyMCE是一款易用.且功能强大的所见即所得的富文本编辑器. TinyMCE的优势: 开源可商用,基于LGPL2.1 插件丰富,自带插件基本涵盖日常所需功能 接口丰富,可扩展性强,有能力可以无限拓展功能 界面好看,符合现代审美 提供经典.内联.沉浸无干扰三种模式 对标准支持优秀(自v5开始) 多语言支持,官网可下载几十种语言. 二,配置集成并组件化 2.1,通用配置…
一.内存泄漏 1.指令绑定了事件,却没有解绑事件,容易产生内存泄漏.(曾经遇到过的案例) 2.v-if指令产生内存泄漏,比如v-if删除了父级元素,却没有删除父级元素里的dom片段 3.跳转到别的路由,却没有删除产生的dom片段.需要在beforeDestroy()钩子里注销三方插件,销毁定时器等 二.Vue.$set 1.vue不能检测到数组与对象的2种变化:数组长度变化,数组索引修改内容:对象属性的添加与删除. 2.Vue.$set(target,key,value):可以动态的给数组.对象…