最近两三周在主要在写 React,在这里写一下,算是个总结。

webpack

我们的后端语言用的是 Go, 对于写网站来说,Go 并没有好的前端资源(js, css,image)的管理方式(打包,压缩),另外我们也没有用任务的框架,简单粗暴的 Go http server + package 的方式来实现的,所以也只能借用 JS 的. 开始的时候其实我们用的是 gulp, 因为只需要打包、压缩生成 manifest 就可以了,它的使用也简单(也是当时对 webpack 的理解不够)。但是打算换成 ReactJS,它是推荐用 browserify 或 webpack,就这样决定把之前的 gulp 换成了 webpack。这里面主要的问题是作用域。这里强烈建议看一下 ryfeng 的一篇文章Resource2,关于 CommonJS 的,因为 webpack 也是基于它的,理解很重要。关于 AMD 的因为没有实践,就不多说了。总之也并没有那么难。

Component 生命周期

略,其实很重要,主要是因为资料说得很详细,这里只把地址放在这里,生命周期

JSX

React 里非常重要的一部分是 JSX,虽然你可以用 JS 来代替,我相信大多数人不会这样做。所以很有必要说一下。

我经常遇到的一个错误 Adjacent JSX elements must be wrapped in an enclosing tag,原因是 React.createClass 里的 render 里面只能返回闭合的标签。像 img, br 这种闭合还是可以理解的,但是我会忘记最外层加一个闭合的标签,为什么?根源就在于 JSX。我把Resource3里的例子放到这里。

var dropdown =

A dropdown list

Do Something

Do Something Fun!

Do Something Else

;

render(dropdown);

这是我刚开始的 ReactJS 的写法:

var Layout = React.createClass({

render: function() {

return (

);

}

});

上面的这个例子 Header, Content, Footer 最外层,实际上是没有闭合的。render 里面返回的是一个变量,而上面我的例子,会产生歧义,它并不知道到里里结束。

另外包含了一些其它的,类似于编译器、 Transpilers(没有想到好的词来表达)。

翻页

并不是太习惯于滚动翻页,我选择了 react-pager,其实也很方便,只是需要在 handlePageChanged 自己处理数据请求。只是会有一个跟 react-router 结合时 browserHistory 的问题,我们接下来说。

路由

React 做为 SAP 是一个很好的选择,但是我希望能够像正常的 URL 请求一样,所以我又用了 react-router。实际上 Routes 是分成两部分的:Client 跟 Server,如果你用 NodeJS 的很方便。但是我们是用的 Go,Server 端只能自己来写,不过最终方法是抽取出来了,也还好。

client 我遇到的几个方面:

多个 components共用 layout,resource8

上面提到的 browserHistory 问题,加 pagination 时 browserHistory 的处理。这里需要很看一下 Resource7,理解一下 component 的生命周期,我是 componentDidUpdate 里处理,整个代码是需要自己来实现的。另外需要在 handlePageChanged 时把翻页放入历史里面 browserHistory.push('/users?page='+newPage)

最后

以上是我在使用过程中,遇到的困难跟觉得比较重要的部分。目前看来 ReactJS 确实是非常适合于前后端分离的。把数据的渲染工作放到前端,用 api 的加载数据而不是整个页面可以提升大约 50% 速度(这个是基于数据量的,测试数据大概百万级别)。首次请求因为没有数据的处理跟模板的加载,显示速度提升更明显,相当于静态的 html 加载,本地测试数据是提升几百倍,从大于1s到几ms。

如果问题欢迎一起讨论。

相关资料

python 哈姆雷特_哈姆雷特之 React相关推荐

  1. Python设计和实现聪明的尼姆游戏

    Python设计和实现聪明的尼姆游戏 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品 ...

  2. python图像处理实战 戴伊_这一套封面的程序员专业书籍你读过哪一本?

    以往我们总盯着畅销书,经典书,新书,今天给大家介绍Packt Publishing的程序员专业书籍.这一套封面的程序员书你读过哪一本? 1.Python图像处理实战 [印度] 桑迪潘·戴伊(Sandi ...

  3. python并发编程书籍推荐_《吐血整理》-顶级程序员书单集

    <程序人生>十年风雨技术人的书单整理 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为. 那格局是什么呢? 格局是你能够看见的深度.广度和密度. 王潇认为,格局是一本本书搭建起来的, ...

  4. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  5. python包的中 _init _.py文件介绍

    python包的中 _init _.py文件介绍 我们新建python包时常常会看到一个__init _.py文件. 作用介绍: ​ 一:这个文件是属于python包的,这个文件用作于标识python ...

  6. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  7. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  8. python自动卸载win程序_利用python实现自动扫雷程序

    自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式. 一.准备工作 1.扫雷游戏 我是win10,没有默认的扫雷,所以去扫雷网下载 h ...

  9. python常用的表达式有关系表达式_数学关系式 表示成正确的 Python表达式为_________。_学小易找答案...

    [单选题]下列选项中,不属于 Python特点的是_______. [判断题]在经济计量分析中,模型参数一旦被估计出来,就可直接运用于实际的计量经济分析. [多选题]计量经济模型的应用在于( ) [填 ...

最新文章

  1. 人工智能先锋人物杰夫·辛顿说:“深度学习将无所不能”
  2. 写代码时发现......还是 SpringBoot 牛逼!一篇拿下
  3. 安卓之页面跳转与传值和按钮事件
  4. spring boot第七讲
  5. 【GVA】gorm多对多many2many删除数据的同时级联删除关联中间表中的关联数据
  6. java同步锁如何使用_java 同步锁(synchronized)的正确使用姿势
  7. 返回后通知(After Return Advice)
  8. 解决 Windows 系统使用 Homestead 运行 Laravel 本地项目响应缓慢问题
  9. Linux nohup实现后台运行程序及查看(nohup与)
  10. Nagios 监控
  11. Linux设备驱动模型-Kset
  12. Hashtable 数据遍历的几种方式
  13. python程序设计与应用_Python程序设计及应用
  14. Jensen不等式的证明
  15. 程序员保健身体的几点秘诀
  16. mac os 13 通过网线共享mac的(wifi)网络
  17. CC2640R2F BLE5.0 蓝牙协议栈GATTServApp模块
  18. CAMP模型——估计资本成本的模型
  19. Spring的工作原理(一)简介
  20. linux系统:can't create transaction lock on /var/lib/rpm/.rpm.lock 错误

热门文章

  1. Java程序中如何输入数据
  2. 在 LaTeX 中直接作图:Picture环境
  3. c语言汇编6,C语言是如何转换成汇编语言的6个步骤带你解析
  4. 软工之404 Note Found团队
  5. win7怎么共享文件
  6. 简单了解条形码,二维码的生成
  7. K7+6678信号处理板 方案 原理图 pcb
  8. 2020年G2电站锅炉司炉复审考试及G2电站锅炉司炉证考试
  9. photoshop基础知识大全
  10. python不容易注意的知识点_Python 必晓知识点-精简实用