TypeScript Handbook(中文版)
个可选的回调属性到 Props ,它们分别是 onIncrement 和 onDecrement : export interface Props { name: string; enthusiasmLevel?: number; onIncrement?: () => void; onDecrement?: () => void; } 然后将这两个回调绑定到两个新按钮上,将按钮添加到我们的组件里。 组件转换成一个容器,通过以下两个函数: mapStateToProps 将当前store里的数据以我们的组件需要的形式传递到组 件。 mapDispatchToProps 利用 dispatch 函数,创建回调props将actions送到 store。 回想一下,我们的应用包含两个属性: languageName 和 enthusiasmLevel 。 我们的 Hello 组件,希望得到一个 Hello 组件需要的四个属性中的两个。 我们还 想要传入 onIncrement 和 onDecrement 回调函数。 mapDispatchToProps 是 一个函数,它需要传入一个调度函数。 这个调度函数可以将actions传入store来触 发更新,因此我们可以创建一对回调函数,它们会在需要的时候调用调度函数。 TypeScript Handbook(中文版) 83 React0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
你可以在这里阅读更多关于这个概念的细节:Dan Abramov写的_表现层的容器组件_。 现在我们修改 src/components/Hello.tsx ,让它可以修改状态。 我们将添加两个可选的回调属性 到 Props ,它们分别是 onIncrement 和 onDecrement : 1. export interface Props { 2. name: string; enthusiasmLevel?: number; 4. onIncrement?: () => void; 5. onDecrement?: () => void; 6. } 然后将这两个回调绑定到两个新按钮上,将按钮添加到我们的组件里。 1. function Hello({ name, enthusiasmLevel = 1, onIncrement, onDecrement }: 组件转换成一个容器,通过以下两个函数: mapStateToProps 将当前store里的数据以我们的组件需要的形式传递到组件。 mapDispatchToProps 利用 dispatch 函数,创建回调props将actions送到store。 回想一下,我们的应用包含两个属性: languageName 和 enthusiasmLevel 。 我们 的 Hello 组件,希望得到一个0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 在不知不觉中学会了许多算法,并习惯将它们应 用到日常生活中了。下面我将举几个具体的例子来证实这一点。 例一:查字典。在字典里,每个汉字都对应一个拼音,而字典是按照拼音字母顺序排列的。假设我们需要查 找一个拼音首字母为 ? 的字,通常会按照图 1‑1 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所 如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 在不知不觉中学会了许多算法,并习惯将它们应 用到日常生活中了。下面我将举几个具体的例子来证实这一点。 例一:查字典。在字典里,每个汉字都对应一个拼音,而字典是按照拼音字母顺序排列的。假设我们需要查 找一个拼音首字母为 ? 的字,通常会按照图 1‑1 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所 如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b1 TypeScript 版阅读本书时,请不要“惯着”那些弄不明白的知识点。欢迎在评论区留下你的问题,小伙伴们和我都会给予解 答,您一般 2 日内会得到回复。 同时,也希望你可以多花时间逛逛评论区。一方面,可以看看大家遇到了什么问题,反过来查漏补缺,这往往 可以引起更加深度的思考。另一方面,也希望你可以慷慨地解答小伙伴们的问题、分享自己的见解,大家互相 学习与进步! Figure 0‑7. 评论区示例 0. 写在前面 hello‑algo 。 暂存空间可分为三个部分: ‧「暂存数据」用于保存算法运行中的各种 常量、变量、对象 等。 ‧「栈帧空间」用于保存调用函数的上下文数据。系统每次调用函数都会在栈的顶部创建一个栈帧,函数返 回时,栈帧空间会被释放。 ‧「指令空间」用于保存编译后的程序指令,在实际统计中一般忽略不计。 Figure 2‑9. 算法使用的相关空间 /* 类 */ class Node { 2. 复杂度分析 以用数组存储,并生成一个随机序列,根据索引实现样本 的随机抽取。 二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常 查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。 深度学习。神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式构建 的。数组是神经网络编程中最常使用的数据结构。 4. 数组与链表0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版为你解答,一般情况下可在两天内回复。 第 0 章 前言 hello‑algo.com 7 如图 0‑6 所示,每篇文章的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解大家遇 到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分享您 的见解,帮助他人进步。 图 0‑6 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 1000 0011 → −3 为了解决此问题,计算机引入了「反码 1’s complement code」。如果我们先将原码转换为反码,并在反码 下计算 1 + (−2) ,最后将结果从反码转化回原码,则可得到正确结果 −1 。 第 3 章 数据结构 hello‑algo.com 54 1 + (−2) → 0000 0001 (原码) + 1000 0010 (原码) = 0000 0001 们选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据此 变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。首先根据扩容倍数创建一个更大的数组,再 将当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版若你是演算法初學者,從未接觸過演算法,或者已經有一些刷題經驗,對資料結構與演算法有模糊的認識, 在會與不會之間反覆橫跳,那麼本書正是為你量身定製的! 如果你已經積累一定的刷題量,熟悉大部分題型,那麼本書可助你回顧與梳理演算法知識體系,倉庫源程式 碼可以當作“刷題工具庫”或“演算法字典”來使用。 若你是演算法“大神”,我們期待收到你的寶貴建議,或者一起參與創作。 前置條件 你需要至少具備任一語言的程式設計基礎,能夠閱讀和編寫簡單程式碼。 感謝我的女朋友泡泡作為本書的首位讀者,從演算法小白的角度提出許多寶貴建議,使得本書更適合 新手閱讀; ‧ 感謝騰寶、琦寶、飛寶為本書起了一個富有創意的名字,喚起大家寫下第一行程式碼“Hello World!” 的美好回憶; ‧ 感謝校銓在智慧財產權方面提供的專業幫助,這對本開源書的完善起到了重要作用; ‧ 感謝蘇潼為本書設計了精美的封面和 logo ,並在我的強迫症的驅使下多次耐心修改; ‧ 感謝 @squidfunk 出你的問題,我和小夥伴們將竭誠 為你解答,一般情況下可在兩天內回覆。 如圖 0‑7 所示,網頁版每個章節的底部都配有評論區。希望你能多關注評論區的內容。一方面,你可以瞭解 大家遇到的問題,從而查漏補缺,激發更深入的思考。另一方面,期待你能慷慨地回答其他小夥伴的問題,分 享你的見解,幫助他人進步。 圖 0‑7 評論區示例 0.2.5 演算法學習路線 從總體上看,我們可以將學習資料結構與演算法的過程劃分為三個階段。0 码力 | 384 页 | 18.80 MB | 10 月前3
TypeScript 多场景设计方案及应用实践
场景,⽽而淘宝有不不少全栈场景 js/ts ⽬目录混合 TS 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 class ⽤用法,⽆无法多继承 TS 杂糅的 app/ctx 合并机制 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题 尝试引⼊入 IoC 解决复杂业务的问题 TS 配置 很早就开始使⽤用0 码力 | 95 页 | 8.28 MB | 1 年前3
共 8 条
- 1













