V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  SHF  ›  全部回复第 5 页 / 共 9 页
回复总数  172
1  2  3  4  5  6  7  8  9  
@PTLin 解决了,看 #4
已解决,参数列表里类型不能写 env: napi::Env, 否则宏展开会报错,直接写 Env 就可以了,现在功能已经完美可用

```rust
#[napi]
pub fn get_process_cmdline (env: Env, pid: u32) -> anyhow::Result<JsString> {
...

Ok(env.create_string_utf16(&cmdline)?)
}
```
我喜欢 snake_case ,驼峰字母高高低低太恶心了
@PTLin 好的谢谢,我再研究下
253 天前
回复了 zdt3476 创建的主题 问与答 有没有直屏安卓机推荐啊
打错了,红米 K60 Pro
253 天前
回复了 zdt3476 创建的主题 问与答 有没有直屏安卓机推荐啊
小米 K60 Pro ,屏幕 2K 比小米 13 好
AutoHotkey 很强大
262 天前
回复了 selfmaking 创建的主题 RSS 求 微信公众号 RSS
之前用过 rsshub, 不知道现在还能不能用了
262 天前
回复了 MakinoharaShoko 创建的主题 程序员 看书和文档学习,还是视频教程?
视频还是书本身的质量很重要,有些视频确实做得好或者讲得好,比如线性代数的本质那个系列的视频,比看书生动多了,( https://www.bilibili.com/video/av6731067/) ,还有最近看了 Carbon Langauge 的视频,https://www.youtube.com/watch?v=omrY53kbVoA 有很多重要的特性比较生动的讲出来。
还有个问题,就是 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, 重新渲染
266 天前
回复了 Simcentric 创建的主题 推广 折腾了个新界面,大家看下,一手资源哈
导航栏从顶上悬下来一截好难受
266 天前
回复了 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 层,而且协议比较新,有可能指纹探测还没开发出来?
267 天前
回复了 NoobNoob030 创建的主题 程序员 内网穿透被网警打电话了
看来需要升级下 frp 版本并修改配置

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

先 tls 连接,加密,然后再干别的,你又如何嗅探?
268 天前
回复了 bjzhou1990 创建的主题 Windows 因为一个文件夹名字,电脑死机了
这是什么历史遗留问题吗?
头铁,目前还不开,再观望观望,我觉得还是密码比较香
268 天前
回复了 justicelove 创建的主题 Windows 快捷键求助
autohotkey 你值得拥有,我一般把 CapsLock & j,k,h,l 设置为 上下左右,充分利用 CapsLock 键
其实自己用 vscode 提供的 api 去实现一些小功能,比如按某个快捷键做一些操作,能更好的理解插件的工作原理也更有意思。还能实现一些符合你自己的需求,有成就感。
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1187 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 23:00 · PVG 07:00 · LAX 16:00 · JFK 19:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.