V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  w4ngzhen  ›  全部回复第 3 页 / 共 7 页
回复总数  130
1  2  3  4  5  6  7  
2024-03-29 16:45:24 +08:00
回复了 Asuler 创建的主题 React 请教一个 react hook 的问题
另外,useEffect 一定要分两步看:它“吃”了一个匿名函数,但是不意味着它立刻会调用;调用的时机取决 React 所的定义的依赖判定。
2024-03-29 16:42:37 +08:00
回复了 Asuler 创建的主题 React 请教一个 react hook 的问题
```jsx
const App = () => {
const [count, setCount] = useState(1);
const handle = () => {
console.log('做些事');
}
useEffect(() => {
handle();
}, [count])
return <button onClick={() => setCount(count + 1)}>Add One</div>
}
```

感觉大家没有回答到点上啊。首先,React 中的函数式组件,每“运行”一次,是一个时刻的结果。比如上面的 App 函数,完成一次加载以后。实际上就是运行了一次 App 函数,对于第一次视为 t1 ,t1 流程是:
1. 初始化了一个 count 的 state
2. 通过变量`handle`定义了一个函数
3. 执行了一次 useEffect
4. 返回了一个`<button />`

这里面最关键的点是步骤 3 执行 useEffect 。在第一次运行的时候,这个匿名方法:

```js
// t1 时刻的匿名函数
() => {
handle(); // t1 时刻的 handle 变量
}
```

被 React 存放到了内部,并且它捕获了 t1 时刻的变量`handle`,并且,通过`[count]`定义了依赖项。并且,t1 的匿名函数会执行一次。

当你点击按钮的时候,由于调用了 setCount ,在上述场景下,会导致 App 重新执行一次,我们把第二次执行的流程视为 t2 。它的过程是:

1. 由于第 2 次了,useState 拿到的值不再是初始值,而是上一次 set 的值,在上面的例子是 2 ;
2. 通过变量`handle`定义了一个函数。这里的 handle ,跟 t1 阶段的 handle 完全是两个变量,它们仅仅是名字一样,代码块一样而已。
3. 执行一次 useEffect 。此时,生成了一个 t2 时刻的匿名函数:

```js
// t2 匿名
() => {
handle(); // 这里的 handle 也是 t2 时刻的 handle ,跟 t1 的 handle 没有任何关系
}
```

此时,t1 的 count = 1 与 t2 的 count = 2 不一样了,所以,useEffect 中的匿名函数( t2 版本)会执行一次,handle 自然就是 t2 版本的 handle 。

另外,上述场景中的 handle 能用 count 这个 state 吗?当然可以,因为 t2 时刻的 handle 捕获的是 t2 时刻的 count 。
2024-03-28 10:45:04 +08:00
回复了 yuntun 创建的主题 程序员 来聊聊最近遇到的烦心事
看到楼上 TimCook 真蚌埠住了,啊哈哈哈
2024-03-27 08:46:08 +08:00
回复了 wangabout008 创建的主题 问与答 可以看看各位大佬的博客吗, 4042 年还有人写博客吗
读大学开始写的,杂七杂八也有 100 篇了,知乎、掘金,还有自己的博客站同步发: https://compilemind.com/
2024-03-21 18:02:46 +08:00
回复了 whereFly 创建的主题 PHP 最近遇到一个站的页面无法通过 curl 获取内容
在浏览器上,网络请求中,针对请求,右键 —— 复制 —— “以 cURL 格式复制”,再在 curl 中试下。
2024-03-21 17:26:32 +08:00
回复了 nutting 创建的主题 随想 想消费,没啥可买的了?
如果你没有想买的东西,那就确实没有需求。
2024-03-20 16:57:24 +08:00
回复了 anson264556364 创建的主题 问与答 你买得最值得的软件是什么?
请教各位大佬,本人有国区 appleid 和美区 appleid 。但是现在基本上都用国区 id ,想下载小火箭是不是需要:
1 、同一台设备切换到美区 apple id 下载小火箭,然后切换会国区使用。
2 、小火箭充钱怎么解决呀?
2024-03-20 16:55:06 +08:00
回复了 anson264556364 创建的主题 问与答 你买得最值得的软件是什么?
@idioteque7 官网就能看到,个人使用第 1 、2 、3 年续费的价格: https://www.jetbrains.com/store/#personal
2024-03-20 14:47:24 +08:00
回复了 anson264556364 创建的主题 问与答 你买得最值得的软件是什么?
JetBrains 全家桶,今年续费第 4 年了。
2024-03-20 13:55:04 +08:00
回复了 Trinity888 创建的主题 程序员 请问目前有替换 Qt 的技术框架吗?
列举些跨平台的:
Rust:iced (支持多窗口)
C/C++:wxWidgets (对各平台原生封装)
C#:avalonia
Kotlin:kotlin compose
另外,还有一种模式就是,底层基于各平台的图形绘制 API ( OpenGL 、Metal 甚至是 wgpu )作为绘图能力,然后上层封装各种组件绘制的库,来“画”组件,好处是只要设备能画图,就能渲染组件,但是对原生多窗口支持不确保 OK 。这种方案有:Flutter 、各种立即模式渲染库( Im 模式 GUI ),甚至一般 Web 网页。
2024-03-19 09:13:35 +08:00
回复了 yafeilee 创建的主题 分享创造 一个来自中国创业者 L5 自主编程能力的探索
看到了你们发的截图,是如何评判命令行工具复杂度算是 level1 ?就因为没有 UI 么?
2024-03-14 13:45:26 +08:00
回复了 a66243766 创建的主题 macOS 求解工作环境 appleid 管理的最佳实践
我工作 mac 上压根儿就没登陆 appleId ,本来就是工作笔记本。
2024-03-12 19:14:40 +08:00
回复了 xiyy02 创建的主题 职场话题 上周到本周陆续收到了几个 offer,如何选?
个人觉得乐刻不错,1 、现在大众的健身意识越来越好,免不了想去健身房锻炼,但是苦于普通健身房的年费机制,乐刻的收费模式比较 OK ,发展肯定不错; 2 、现在开发者本来就缺类似的锻炼,乐刻好歹也是健身起家,应该会有锻炼身体的氛围哈哈。
2024-03-11 17:25:45 +08:00
回复了 seanwhy 创建的主题 程序员 基于 Webassembly 的一些问题
另外对于产品设计方面,看到贵司的软件是 C++三维软件,我假设是一款生产力软件,作为用户,我用客户端在 PC 上使用,明显比在浏览器上使用更加放心😂。
2024-03-11 17:23:00 +08:00
回复了 seanwhy 创建的主题 程序员 基于 Webassembly 的一些问题
“只能说客户端被浏览器蚕食的太厉害了” 还是没有 Get 到真正的原因,公司是希望以后这块的软件都通过浏览器作为媒介来使用,因为它随时可用,方便快捷,不用下客户端?但假设你真正编译为了 wasm ,大小并不比原生应用小。当然,我只是作为旁观者提出的疑问😂。
2024-03-11 17:09:02 +08:00
回复了 iszengmh 创建的主题 React 为什么我感觉 react 很难学
@Seria 然而 JSX 和 React 其实没有必然的关系,你完全可以写 React.createElement ,但最后发现构造 UI ,特别是嵌套 UI ,还是类似 JSX 这样的语法糖好用。另外,实际上 React 中的 JSX 标签和 HTML 中的标签,完全是两个东西,只不过为了更接近 HTML 而做的一样。
2024-03-08 16:32:39 +08:00
回复了 RedisMasterNode 创建的主题 程序员 有人像我一样讨厌本地无法运行起来的项目的吗?
个人最不喜欢的就是一个项目会有 N 多个补丁式的脚本运行后才能进行开发、构建,而且没有文档来说明这些脚本究竟的作用是什么。
2024-01-15 16:27:02 +08:00
回复了 Cat7373 创建的主题 魔兽争霸 2024 了,游戏界出现魔兽争霸 3 的替代品了嘛
帝国时代 4 挺多人玩的呀
2024-01-12 17:12:48 +08:00
回复了 lovejunjie1 创建的主题 微信 微信的文字识别是不是离线的?
可以用 tesseract 自己编译并本地自训练一个。
https://github.com/tesseract-ocr/tesseract
关于 TS 类型检查和 IDE 之间的关系,推荐 po 主读一下我写的这篇文章,应该能够解答你的疑惑。https://zhuanlan.zhihu.com/p/620451796
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2365 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 11:56 · PVG 19:56 · LAX 04:56 · JFK 07:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.