Skip to content

Instantly share code, notes, and snippets.

@hacker0limbo
Last active October 13, 2019 15:47
Show Gist options
  • Save hacker0limbo/214b98febd68ec2e82eac7e86edb9996 to your computer and use it in GitHub Desktop.
Save hacker0limbo/214b98febd68ec2e82eac7e86edb9996 to your computer and use it in GitHub Desktop.
一些语录

1

面向对象编程的问题是,每个对象都有自己的状态,开发程序时,必须记住当前所有对象的状态。

为了让我们的生活更轻松,最好只有一小部分代码库处理状态,其他代码都是无状态和纯的。实际上,这就是前端的 Redux 库取得巨大成功的主要原因。

-- 《面向对象编程:一万亿美元的错误》

2 React 应该尽量遵守 "有状态的组件没有渲染, 有渲染的组件没有状态" 这一原则, 这句话的意思是:

“有状态的组件没有渲染”: 包含实际业务状态的组件不应该进行视图的渲染,而是应该将实际业务状态传递给子孙组件,让子孙组件来进行视图渲染;

“有渲染的组件没有状态”: 能够进行视图渲染的组件,不要包含实际的业务状态,而是通过接受父辈的参数来进行渲染;

这样的话,有渲染的组件没有实际的业务状态,就与实际的业务解耦了,能够更好的服务于其他的有状态的组件,实现组件的复用。

例子为可以将容器拆分成展示型组件和容器组件, 容器组件负责状态的管理, connect redux 等, 将包装好的方法传给展示型组件, 展示型组件调用这些方法进行数据的渲染, 实际并不涉及对数据的操作

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment