React尝鲜

好吧,其实不应该叫尝鲜了,毕竟大家都在喊,所以算一个正在火的东西。

一年前当AMD/CMD还在很流行的时候,我给我自己的github-pages上的两个API使用seajs组织了下,感受了下模块化的魅力,而如今当Angular/React大行其道的时候,不对他们进行一个了解实在也说不过去。So,趁着今天空闲,把github-page上的前端组件全部用react进行了替换,算一个入门的学习。

这是我的github-pages repo: https://github.com/coffeesherk/coffeesherk.github.io

如果clone下来就能看见基本的文件结构啦。

JSX

第一次接触react的时候,被新颖的jsx文件吸引,毕竟这也是个很不错的发明,把模板引擎和js代码混淆在了一块。在render模块是挺让人开心的,有点Web components写法(Custom Tag)

jsxvar MyTag = React.createClass({
    render: function () {
        return (


<div>
                {this.state.username}
            </div>


        );
    }
});

React.render(
    <MyTag />,containerNode
)

好吧,这个“不伦不类”的就是jsx啦。我认为这个东西最大的好处就是可以在js文件里写好模板,而不需要用字符串的形式存在另外的地方。

当然,坏处就是jsx不是浏览器默认支持的格式,需要用JSXTransformer转成javascript才行;也可以使用即时编译的方式,当然,编译的时间就要浪费在浏览器里了,所以最好是先编译好再发布出去。

React和MVC

官方介绍说,React最多算MVC里面的V,它只是专注于为我们提供一套UI和交互的解决方案,为了Web Components一统天下的梦想,可以把每个组件和相关的API封装成一个组件,然后我们可以针对组件进行重用,再次解放前端工程师的生产力。

React和Module

React可以AMD/CMD化,原因就是它的组件可以导出,利用RequireJS或者SeaJS也可以很好的管理jsx编译出来的js啦。

以后有机会写一下最佳实践。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...