关于clojurescript:论前端框架组件状态抽象方案-基于-ClojureScript-的-Respo-为例

Respo 是本文作者基于 ClojureScript 封装的 virtual DOM 微型 MVC 计划.本文应用的工具链基于 Clojure 的, 会有一些浏览方面的不便. 背景Backbone 以前的前端计划在文本作者的理解之外, 本文作者次要是 React 方向的教训.在 Backbone 期间, Component 的概念曾经比拟清晰了.Component 实例当中保留组件的部分状态, 而组件视图依据这个状态来进行同步.到 React 呈现, 根本造成了目前大家相熟的组件化计划.每个组件有部分状态, 视图主动依据状态进行自动更新, 以及专门形象出全局状态. React 之外还有 MVVM 计划, 不过本文作者认为 MVVM 偏差于模板引擎的强化计划.MVVM 后续走向 Svelte 那样的动态剖析和代码生成会更天然一些, 而不是运行时的 MVC. React 历史计划React 当中部分状态的概念较为明确, 组件挂载时初始化, 组件卸载时革除.能够明确, 状态是保留在组件实例上的. Source of Truth 在组件当中.与此相区别的计划是组件状态脱离组件, 存储在全局, 跟全局状态相似. 组件内存储的状态不便组件本身拜访和操作, 是大家非常习惯的写法.以往的 this.state 和当初的 useState 能够很容易拜访全局状态.而 React 组件中拜访全局状态, 须要用到 Context/Redux connect 之类的计划,有应用教训的会晓得, 这两头会波及到不少麻烦, 尽管大部分会被 Redux 封装在类库外部. ...

November 20, 2020 · 3 min · jiezi