
获得徽章 17
- 听说谁能够准确说出下面的打印结果并且知道为什么,谁就是 react 大师级人物,match 阿里 P7 。大家不妨试一试。
========================================
import { useEffect } from "react";
import { createRoot } from "react-dom/client";
export const App = ({ name }) => {
console.log("log:", 5);
Promise.resolve().then(() => {
console.log("log:", 6);
});
useEffect(() => {
console.trace();
console.log("log:", 7);
});
return (
<div>
<h1>Hello {name}!</h1>
<p>Start editing to see some magic happen :)</p>
</div>
);
};
const root = createRoot(document.getElementById("root"));
console.log("log:", 2);
root.render(<App name="StackBlitz" />);
console.log("log:", 3);
Promise.resolve().then(() => {
console.log("log:", 4);
});
setTimeout(() => {
console.log("log:", 1);
}, 0);展开等人赞过104 - 看了 Evan You 在 ViteConf 2023 上的演讲,vite 的内部实现看来要变天了。他们推出了 rolldown 项目 - 一个与 rollup api 兼容但是底层实现是用 rust 来编写的 bundler。在 Evan 的四步走规划里面,他还提出了一个「Rustify Vite」的理念。简单来解释这个理念就是「一切能用 rust 重构的东西(主要是指 plugin)都用 rust来实现」。这里「能用 rust 重构」的标准是什么?标准是「能对性能的提升有帮助」。
前有 turbopack,中有 rspack,后有 vite。用 rust 来重建前端基础设施的趋势正在发生,未来也会一直延续。Keep eyes on it!展开赞过评论2 - 偶然看到这个沸点问怎么封装一个全局公共组件。那让鲨叔来说道说道吧。遵循以下几点就可以做到:
1. 全局组件挂载放在 react 应用的根组件上;
2. 与此同时,向全局组件传入一个「函数类型」的 ref 属性值(不要忘记,function component 是默认不接受 ref 属性的,所以记得用 `forwardRef()` 包裹一下),这个函数要实现的就是把全局组件回传给我们的 instance 挂载在 window 对象上。
3. 最后,作为配合,在全局组件内部中需要使用 `useImperativeHandle` 来将内部的想要暴露出去的方法暴露出去。
根据上面的步骤,我们可以封装出一个全局的公共组件。比如说,比较合适的使用场景是全局的 <GlobalLoading> 组件。假设现在我们的 ref 属性值是 `(instance)=> window._globalLoading_ = instance`,那么你在项目的任何地方就可以无需预先导入,直接以命令式的方式去使用<GlobalLoading> 组件,例如:`_globalLoading_.show()` 或者 `_globalLoading_.hide()`等等。
我是鲨叔,reactjs 资深用户。我写了一个关于一个专栏《All about React》。关注我,可以让你的 react 能力更上一层楼。展开等人赞过116 - react 的生态真太娘的强大,啥东西都有,包括 web3。比如:
1. wagmi 是一个 React Hook 的集合,包含了你与以太坊交互所需的一切;
2. Web3-react:用于 React 应用的库,旨在使 DApp 的开发更加容易;等人赞过37 - 看完 Rich Harris 的 svelte 5 发布视频《Introducing Runes》后,我由衷地感谢 reactjs,因为它不需要我记住太多神奇的东西。Javascript is all.赞过评论1
- 由于受到了巨大的利益冲击,Matteo Collina - nodejs 的核心贡献者之一写了一篇热文《My thoughts on Bun and other Adventures》。这篇文章里面,他解释了为什么 nodejs 性能不给力的原因(没资金投入到这一块。有限的资金被分配到功能和安全性这边了),还有隐晦地鞭挞了 Jarred Sumner 错误的性能对比方法和夸张的宣传手段(在这一点上,Evan You 也在 Twitter做了同样的声讨)。最后,他呼吁大家有钱出钱,有力出力,一起把 nodejs 做大做强。展开等人赞过评论7
- 2023年9月8日,bunjs@1.0 正式推出。Twitter 上到处都是关于它的讨论。下面用一个对话来总结这个热度话题:
bunjs:" I am fastest!"
nodejs: " I can do everything......"等人赞过评论5