实际项目中看到lodash的导入使用存在问题,这里mark下。

问题

package.json中依赖是lodash即cjs lodash。

1
2
3
4
5

import _ from 'lodash';

import { cloneDeep } from 'lodash';

上述方式下,无路是哪个打包都是全量的。

阅读全文 »

在处理表单校验/交互操作时,经常会用到react-hook-form。之前没注意其提供的useFieldArray,最近在CR时看到有这个写法才了解了下。这里mark下其使用。

场景

在表单处理时,有时会需要处理数组表单项,比如用户可以动态添加N行的表单项。那么useFieldArray就可以面向于这种数组处理的。

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function FormTest() {
const {control, register, getValues} = useForm();
const {fields, append, prepend, remove, swap, move, insert} = useFieldArray({
control, // control props comes from useForm (optional: if you are using FormProvider)
name: "test", // unique name for your Field Array
});

console.log(fields, 'fields');
return (
<form>
{fields.map((field, index) => (
<div><input
key={field.id} // important to include key with field's id
{...register(`test.${index}.value`)}
/></div>
))}

<Button onClick={() => {
append({
value: 1,
})
}}>
Add
</Button>
{
JSON.stringify(getValues())
}
</form>
);
}

阅读全文 »

Fantastical已用多年,最近看到出Windows版了,激动之余,决定整理下我经常使用到的功能。

跨平台

我目前主要使用以下几个平台。

  1. Mac
  2. iPhone
  3. Apple Watch付费要求,如果没有开启Premium订阅无法使用。
阅读全文 »

最近私有化项目遇到个需求就是iframe包含的站点需要实现免密登陆。这里先大概想下几个方案。

站点IP白名单免登陆?

任何一个请求到服务端都是可以在req上拿到请求IP的,因此也就可以做到by ip的登陆,但这个的弊端是用户一旦换了网络环境自然也就不可以登陆了。

同站+跨域

如果两个站点是同站跨域,cookie在写登陆信息时domain写的是父域名,那么在请求时本身就会携带该cookie信息,自然就会免登陆

阅读全文 »

背景

购买机场服务,一般会提供完整的代理配置文件,比如会提供Surge语法的完整配置文件,里面包含节点、规则、脚本等配置。但根据个人习惯,比如我只想使用其中的节点,那么如何结合订阅解决+自定义规则呢,其中模块方式写自定义规则利用规则优先级会是个办法,但假如我完全想抛弃机场规则呢,这时需要个更灵活的方式。

这里就总结下相关的使用技巧。

创建策略组-包含订阅节点

设置外部订阅策略组,注意开启自动更新。策略组是自动或手动都行。

阅读全文 »
0%