V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  SHF  ›  全部回复第 8 页 / 共 12 页
回复总数  222
1  2  3  4  5  6  7  8  9  10 ... 12  
还有个问题,就是 MemoryKV 里面 map 里存了 key 对应的 value. 在 init 的时候添加进 map ,但是在所有使用这个 key 的组件都 unmount 时,应该删除 map 中的 key, 否则就会内存泄漏。map 除了要维护 value ,还要维护使用这个 key 的组件有多少,当使用的组件为 0 时做清理。但这个方法其实在 react 18 里面,如果启用了 strict 模式,组件会被模拟挂载两次,也不好搞,参考 https://stackoverflow.com/questions/72238175/why-useeffect-running-twice-and-how-to-handle-it-well-in-react
```ts
export function useValueWithKey<T> (initialState: T, key: string) {
const [_, setValue] = useState<T>(initialState)

useEffect(() => {
// init value(if not set by another component)
mkv.init(key, initialState)
const handleChange = () => {
setValue(mkv.get(key))
}
eb.on(`__CHANGED__${key}`, handleChange)
handleChange()
return () => {
eb.off(`__CHANGED__${key}`, handleChange)
}
}, [ ])

return {
set value (newValue: T) {
mkv.set(key, newValue)
eb.emit(`__CHANGED__${key}`)
setValue(newValue)
},
get value (): T {
return mkv.get(key) ?? initialState
}
}
}
```

useEffect 里面直接调用了 handleChange, 里面执行 setValue 会导致组件挂载之后因为 state 变了又重新 render ,不太好
你试试在组件里面 console.log('render') 看看渲染了几次
https://github.com/ShenHongFei/react-object-model

我这个状态管理库也很简单,在组件里通过

const { name, age } = user.use(['name', 'age'])

订阅对象的属性,在属性改变时 diff, 重新渲染
2023-08-31 21:36:48 +08:00
回复了 Simcentric 创建的主题 推广 折腾了个新界面,大家看下,一手资源哈
导航栏从顶上悬下来一截好难受
2023-08-31 20:20:30 +08:00
回复了 NoobNoob030 创建的主题 程序员 内网穿透被网警打电话了
@proxytoworld 学到了,tls 确实有指纹,把 SSLVersion,Cipher,SSLExtension,EllipticCurve,EllipticCurvePointFormat 按顺序排列然后计算 hash 值,便可得到一个客户端的 TLS FingerPrint ( https://ares-x.com/2021/04/18/SSL-%E6%8C%87%E7%BA%B9%E8%AF%86%E5%88%AB%E5%92%8C%E7%BB%95%E8%BF%87/)

但是这种指纹应该是 go 语言编写的应用程序的通用的指纹吧,很难精准定位是 frp 的

另外一个方案是改一下协议,用 quic 会不会好一点,没有 tls 层,而且协议比较新,有可能指纹探测还没开发出来?
2023-08-30 18:48:49 +08:00
回复了 NoobNoob030 创建的主题 程序员 内网穿透被网警打电话了
看来需要升级下 frp 版本并修改配置

https://github.com/fatedier/frp/issues/3439
https://github.com/fatedier/frp/issues/3193

先 tls 连接,加密,然后再干别的,你又如何嗅探?
2023-08-29 19:09:48 +08:00
回复了 bjzhou1990 创建的主题 Windows 因为一个文件夹名字,电脑死机了
这是什么历史遗留问题吗?
2023-08-29 19:07:12 +08:00
回复了 horseInBlack 创建的主题 GitHub Github 强制开启两步验证了,请问大家用的什么验证器?
头铁,目前还不开,再观望观望,我觉得还是密码比较香
2023-08-29 19:05:54 +08:00
回复了 justicelove 创建的主题 Windows 快捷键求助
autohotkey 你值得拥有,我一般把 CapsLock & j,k,h,l 设置为 上下左右,充分利用 CapsLock 键
2023-08-29 19:03:32 +08:00
回复了 oppddd 创建的主题 问与答 vscode 中有什么推荐的阅读源码的优秀插件吗
其实自己用 vscode 提供的 api 去实现一些小功能,比如按某个快捷键做一些操作,能更好的理解插件的工作原理也更有意思。还能实现一些符合你自己的需求,有成就感。
2023-08-29 18:58:25 +08:00
回复了 TESTFLIGHT2021 创建的主题 Android 推荐个国产牌子的安卓手机吧。。。。。。。
推荐我自己用的红米 K60 Pro, 2K 分辨率直屏,120W 有线充电,30W 无线充电,12G + 256G 4000 左右,太香了
2023-08-06 14:37:51 +08:00
回复了 besscroft 创建的主题 分享创造 DiyFile 一款好看的在线文件列表程序
我也写了一个网盘,主要用来分享平时打羽毛球录的视频 @Zenyet @besscroft
https://shenhongfei.com/files/
同一局域网下面电脑是没问题的,确实是手机问题,得研究研究路由表
可能是 VPN 把系统路由表搞坏了
我也遇到过,开一下飞行模式再关掉就好了,我感觉可能和 clash 的那个 VPN 有点关系
2023-08-05 00:34:23 +08:00
回复了 aquman888 创建的主题 iPhone 大家拍摄的照片用什么工具同步到电脑里?
android root 之后直接 rsync
2023-05-16 10:35:28 +08:00
回复了 lrwlf 创建的主题 Android 2023 安卓手机求推荐!
红米 K60 Pro, 我用的也是这个,真不错
2023-05-15 00:42:36 +08:00
回复了 ql562482472 创建的主题 路由器 2023 年 5 月,有推荐的路由器选择吗?
小米 7000 ,刚出的,已入手,4 个 2.5G 口,未来可能支持 wifi 7
2023-05-09 01:04:37 +08:00
回复了 busier 创建的主题 宽带症候群 开 IPv4/IPv6 双栈后,明显变慢!
手机上用 clash 可能会影响 ipv6 ,有几次我连了 wifi 之后 ipv6 就不通了,需要先忘记无线网络再重连才能用,不知道是什么原因,再观察观察
2023-05-09 01:03:16 +08:00
回复了 busier 创建的主题 宽带症候群 开 IPv4/IPv6 双栈后,明显变慢!
我开了 ipv6, 手动在手机和电脑上设置了 mtu 为 1492, 打开网页飞快,测速 1000M 不到一点
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2592 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 10:43 · PVG 18:43 · LAX 02:43 · JFK 05:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.