正如 react 官网首页里写的 它推崇 声明式编程,而非 命令式
那怎么样的 方式 式 声名式的呢?
举例我的理解:
需求:打开一个 Modal
例子1
命令式: Modal.open(); // 翻译:命令 modal执行:打开
声明式:<Modal open={true}> // 翻译:声明modal的状态为:打开
例子1的理解应用:
命令式 在react中,就等于,Modal的 父组件 需要 获取Modal并且 操作 Modal的open方法,这中方式式 极力反对
声明式 在react中,就等于,父组件 传递 props 来控制 子Modal的 状态,react 推崇的方法
例子2
命令式:操作dom 使用 jquery 去找到需要操作的 dom节点,然后 操作它
声明式:编码好 数据 与 界面的 关系,只操作 数据,不关心 具体要如何 操作 dom,把dom都交给 react
例子2的理解应用:
命令式 在react中,大部分场景 都不需要这样去操作,不过确实 有需要地方。通常 使用ref获取,例如:
- 管理焦点,文本选择或媒体播放。
- 触发强制动画。
声明式 在react中,这就是 再正常 不过的操作来