文章目录
  1. 1. 其他概念
    1. 1.1. 单向的数据流动 Flux
    2. 1.2. 只读数据 Immutability
    3. 1.3. 直观的编程方式 JSX
    4. 1.4. React 思想的延伸
  2. 2. 碎碎念

接上篇 React 简介和原理,本节介绍下 React 的其他概念。

其他概念

单向的数据流动 Flux

React 提倡单向数据流动,永远只有从数据到视图的数据流动。Flux 框架,专门管理数据流。

Dispatcher:全局的分发器,负责接收 Action
Action:可以来自于用户的界面操作(eg点击提交按钮)也可以来自服务器端的数据更新
Store:可以在 Dispatcher 上监听到 Action,并作出相应的操作。

当数据模型发生变化时,就触发刷新整个界面。类似“全局的消息发布订阅模型”。

只读数据 Immutability

React 提倡用只读数据来建立数据模型,即所有数据都是只读的,如果要修改它,那么你只能生产一份包含新的修改的数据。此时,是把修改过的对象应用到界面组件上来进行界面的更新。结合 React,只读数据能让 React 组件仅仅通过比较对象引用是否相当来决定自身是否要重新 Render,这在复杂的界面上可以提高性能。

只读数据,并不是 Facebook 的全新发明,它起源于 Clojure、Scala、Hashell 等函数式编程语言。只读的数据让代码更安全和易于维护,不用担心数据在某个角落被某段神奇的代码修改了。

直观的编程方式 JSX

JSX 不是什么新技术,它就是为了方便 FE 在 JS 里声明组件。它呢,算是一个“模板语言”,只是它牵扯到语法都是FE最最常用的(HTML、CSS、JS),所以学习成本小到忽略不计。

关于 JSX 更详细的介绍,可以参考 系列三:理解JSX和组件

React 思想的延伸

React Native 将 React 的思想延伸到原生的移动开发,React 对 UI 层进行了完美的抽象。写 web 页面时,甚至能够做到完全的去 DOM 化,开发者无需进行任何 DOM 操作,直接更新数据写 js 即可。因此,这也让对UI层进行整体替换成了可能,React Native 正式将基于浏览器DOM的UI层换成了Android和IOS的原生控件。React Native 参考了 React 强大的特性(组件化的思想 调式工具 动态代码加载),可对以后的移动开发布局产生重要影响。

Flipboard 则是将 UI 层换成了 Canvas。React Canvas 是一套前端框架,所有的界面元素都通过 Canvas 来绘制。

碎碎念

??JS对于字符串的操作 也是这样的,只读数据
??只读数据,那就是值set的时候 需要验证咯~
??只读数据的应用场景 更适合

?? 这几点,很赞同
1.两层数据模式:数据层、UI层
2.不要’模板’
3.一个不要 UI DOM 操作的未来

??两层模型。话说,我觉得这种形式挺好的。bootstrap我几乎没用过,因为它要兼容很多种情况,导致html的结构复杂的混乱-css也是。而当要修改它的时候,就要看它源码—好多不明所以的写法(要不是自己想想可能是为了兼容某种情况,真心觉得它对自己的需求来说输出的是冗余的)而这种思想吧,就是把 组件-模块化了,更在乎它的功能—觉得这点真心很好

??完全去DOM化,哇咔咔,这么多美好的未来呀!!!很开心过几年可以很自豪的拍着胸脯说:想当年我们操作原生dom的时候呀~从此成为经历过web开发历史的人…【我觉得可以实现的哦】

??传说13年提出来,结果15年初的时候突然又火了,更是因为它的衍生吧,eg.延伸到了原生的移动开发—maybe~
??所有界面元素用Canvas绘制:图搜的分享的那次,发现问题并换种方式去解决的思路和精神都是值得大家去学习的

文章目录
  1. 1. 其他概念
    1. 1.1. 单向的数据流动 Flux
    2. 1.2. 只读数据 Immutability
    3. 1.3. 直观的编程方式 JSX
    4. 1.4. React 思想的延伸
  2. 2. 碎碎念