「 设计模式学习 」 L00 开坑贴 & 设计模式概览

设计模式是我在2018年在成都工作的时候听 肉山老师 的直播JavaScript 设计模式 导言的时候就想学习的一个东西,但是一直拖拖拖,买了肉老师的 Chat 从 jQuery 里学习设计模式,但是看了一头雾水,也同样买了肉老师推荐的书《设计模式:可复用面向对象软件的基础》,但是在家里吃灰了半年。
一直想把整个设计模式都了解一下啊,不用吃透,吃个大概明了就可,但是每次都提不起开坑的念头,如果再写成学习笔记的话,学习周期会大大拉长。

但是这在当前项目中的不断迭代中,我遇到了一个问题,就是 项目中的类型和状态管理,所以就想着是否有一个合适的设计模式来解决问题,所以就被逼迫着捡起来了……

阅读全文

项目中的类型和状态管理

这段时间项目迭代比较快,所以很多时候对于记录的状态和类型判断我都是使用的 魔术字符串 的形式,但是这样很 不利于后期的维护,特别是最近一整个分类的类型和状态的都变更了,所以在业务逻辑内的魔术字符串也需要一个一个去同步修改,大部分的都被替换了,但还有一些零碎的地方没有被修改到,导致不断有 BUG 被提上来,这就很头疼了。

所以我就想者怎么把业务逻辑内的魔术字符串使用一种方式替换掉,最开始我想法是使用 链式(变量属性)的方式去使用。

例如在用户下的客户类别中的付费用户那就是使用 user.customer.member.key 去判断是否展示操作内容,但是这样的话,在管理端的用户列表中,去替换用户类型的 keylabel 就比较麻烦(后端只返回用户类型key值,在前端替换为中文名称),因为层级会比较深比如之前的例子 key 就是处于三层,如果一个一个拿出来手动放到一个数组里边有会显得很呆。

就想着是否可以使用一种设计模式来解决这样的问题,但是在快下班的时候怎么样的找不到一个好的方式来描述我遇到的问题。所以只能等回家之后翻一直在书架吃灰的《设计模式:可复用面向对象软件的基础》这本书,想找到一个合适的设计模式……

阅读全文

Symbol() 是个什么东西?

最近在一些 Demo 中经常会看到 Symbol() 这个东西,例如:

1
2
3
4
5
var race = {
protoss: Symbol(),
terran: Symbol(),
zerg: Symbol()
}

就只能记得大概了,就是赋值一个独特的值,但是这个值具体是什么我想不起来了。
所以还是记个笔记加深下印象,省的看了又忘。

ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型

阅读全文

📟 树莓派 4B(2GB RAM) 开箱记录

自从我爸妈他们屋子重新装修好了之后,我爸就嚷嚷着要把他的旧电脑搬上楼装起来,但是家里没有多少地方能摆电脑桌了(怕他又和以前一样在书房看着小说抽一整天的烟)。所以趁着双十一,就入手了一个树莓派 4 Model B,准备给他放客厅连到电视上,通过家里人时不时打断他投入看小说的状态。

今天到货了,开始折腾一下….

阅读全文

聊一下自己 VueJS 项目的编码习惯和风格

横幅

最近在考虑把遍码习惯整理一下,一个良好的遍码习惯可以有效减少一个项目的维护成本,
因为不可能在整个项目的生命周期中,均由最初的开发人员来维护,或者所有的代码都是由你一个人写出来的,
改善代码的可读性,可以让开发人员尽快理解历史的业务代码。

之前也有研究过 ESlint的格式化风格 选择一款适合自己的来规范自己,但是了解的越多,越觉得还是需要团队互相讨论来找一个大家能都接受的妥协结果,所以最后还是选择了 Prettier ,因为我觉得其它两种风格相对来说太严苛了,很多项目都是自己开发并没有多人合作开发的情况出现,所以使用 Prettier 相对来说所自由一些…

阅读全文

ES6 中的 新数据结构 Set & Map

今天在一个需求里边遇到一个使用 MAP 数据结构的场景,就去解了一下 ES6 的新数据结构

ECMAScript 6 内提供了 4种 新结构 Set, WeakSet, Map, WeakMap,虽然已经是5年前的知识了,但是对于我来说还是新🤣

本来想先聊 Map 的,但是仔细看了阮一峰老师的文章之后发现,确实是要从 Set 开始讲

阅读全文

VueJS中 v-bind 的一些修饰符

今天洗澡的时候在听 饥人谷的模拟面试 (五) 的时候,一直觉得这次面试的学生有点差,如果是我来面话可能已经让他回家了,但是 方方老师 很有耐心,在中间问道 .sync 的时候我 ???? 完全没有印象了。

正好自暴自弃了2个月没有更新了,所以复习一下 v-bind 的三个修饰符 [ .prop, .camel, .sync ]

阅读全文

Vue 使用 ref 注册组件的特性

一直以来,我对于 VueJS 中对于使用 ref 注册的组件,在使用 $refs 调用时,为什么有时候是一个 DOM元素/组件实例,是时候会是一个实例数组

所以在很长一段时间内我觉得 ref 注册的的组件在使用 $refs 调用时有很大的不确定性,虽然我的弹窗组件一直都是用的 $refs.modal.open() 来打开的。

直到前一段时间,我在一个场景下想在 v-for 循环渲染的组件下 slot 模板中想使用 ref 注册成一个实例集合来调用时,发现怎么样重写返回的都只是一个组件实例,而不是一个组件实例集合。

所以有了这样一篇笔记。

阅读全文

JS 中的各种 for 循环

一坑未填又开一坑….

先把所有的 for 循环列出吧

阅读全文

Js数组中的 find/findIndex/some 以及 every

今天写 Demo 的时候突然在想 find()some() 的区别是什么? 都是为了找到数组中的内容啊?他们的区别在哪里呢

其实我在打这行字的时候就突然想起来区别是什么了😂,所以我把标题改了

相对于 some() 方法, 我知道 find() 方法会更加早一些,不知道为何,🤔明明 find() 方法才是更加新的特性( 也许因为子龙提到的因为jQuery?)

所以今天我们来聊一聊 find/findIndex/some 以及 every 这4个使用起来感觉差不多的方法。

阅读全文