React项目开发经验汇总
定义好全局配置信息
环境变量不要提取出来,配置信息提取出来
UI样式变量
定义好变量的作用不用多说
样式库建设
工具样式,复用性强的样式,这些class成为会是真个网站样式的底层,将是很重要的一部分
工具函数
这个也不用多说,超级重要的,日常定义一些好的工具函数,说不定哪天就可以产生一个上万star的工具库了
功能封装
包括上传文件,支付,登录,数据返回处理 等等一系列的操作,其实每次都是一个同样的流程
不同的网站根据复用性的业务不同
面对这种问题,复制粘贴代码肯定是不明智的,我们需要维护一系列的功能复用性的工具
静态文件和icon
管理静态文件总是比较麻烦的,最可怕的就是突然的要求复用某个网页里专属的文件,同时cdn建设也很重要,那么这些公共资源如何管理也是一件很重要的事情
尤其是icon的建设
---------------------------分界线-------------------------
以上是常见的复用功能的做法
以下是react项目开发需要注意的地方
UI库建设
UI库建设被放倒第一位的原因也是理所当然的
UI库建设可能在短期降低了开发效率,提高了维护成本,但长期来看,绝对肯定一定以及百分之百是值得的,建设UI库可以有让人意想不到的效果
更是为了保证换即使设计师也可以该组件库,整个网站风格就变了,还有包括间接性的接入第三方UI库,不要直接接入,否则没准哪一天就不用了
说不准哪天就可以产生一个上万star的UI库了
数据层
和后台交互是一件很重要的事情,网页渲染的数据来源一般出了配置信息以外,就是后端请求的数据了
那么怎么去管理这些数据呢
我在项目中的做法是通过mobx建立一个数据层,组件内是完全不可以请求数据的,只会简单的处理数据,然后映射数据到页面上,这样所有的数据操作便会变得清晰起来,很便于维护
多项目并行开发
多项目并行并不是启动多个项目,而是在一个大项目下,根据耦合情况拆分成多个小项目,小项目之间需要有耦合,包括环境变量,UI组件,工具函数,封装好的功能等。盲目的拆开项目去纯粹的解耦是一件很作死的事情
一个大的项目可能会需要并行很多个小项目,比如说我正在做的建站项目,就会并行代理商,自定义网站的后台,网站前台,编辑器,预览,并行多个项目的时候到底拆不拆总是一个很头大的事情
后端渲染和前端渲染
前端渲染的SEO是比较麻烦的事情,next服务端渲染可能是一个不错的选择,很好的解决了浏览内容类页面的加载问题和seo问题
但是编辑器和后台页面本身却不需要什么seo,所以需要前端渲染和后端渲染同时做。
前后端同构
如果后端是node的话,那么同构是一件很有很有意义的事情
总结
同时做好这么多事情看似很麻烦,只要从基本的开始遵循也很快就会完全适应,
其实也不为其他的,为的是不让自己太辛苦的维护项目
为的是换一个设计师的时候 他不会太累
为的是和后端愉快的沟通
为的是自己对自己的东西心里有数
React项目开发经验汇总的更多相关文章
- react构建前端项目方法汇总
react简介: 一.使用react 创建一个PC端的项目 (a):使用 yemon 创建一个 webpack 的 react 的项目 控制台安装并且产看 yemon 的版本 yo -v (b): 全 ...
- React项目模板-从项目搭建到部署
前一段时间做了一个小项目,时间比较紧,就一个人月.最终希望能够通过微信公众号链接启动应用. 项目的业务细节就不多说了,主要是想分享一下做这个项目技术方面的一些经验. 技术选型 参考范围大致三种:Ang ...
- React 项目引入 Dva
背景 现在手上在做的 React 项目因为年代久远,用的 Redux,写代码的体验不太好,所以想升级一下引入 dva.以往使用 dva 都是使用 dva-cli 直接生成 dva 项目,或者在使用 a ...
- H5项目常见问题汇总及解决方案
H5项目常见问题汇总及解决方案 H5 2015-12-06 10:15:33 发布 您的评价: 4.5 收藏 4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- GitHub上史上最全的Android开源项目分类汇总
今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...
- Android 开源项目分类汇总(转)
Android 开源项目分类汇总(转) ## 第一部分 个性化控件(View)主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Galler ...
- Android 开源项目分类汇总
Android 开源项目分类汇总 Android 开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView ...
- Android开源项目分类汇总【畜生级别】[转]
Android开源项目分类汇总 欢迎大家推荐好的Android开源项目,可直接Commit或在 收集&提交页 中告诉我,欢迎Star.Fork :) 微博:Trinea 主页:www.t ...
随机推荐
- 基于三角形与位置指纹识别算法的WiFi定位比较
文章来着:https://wenku.baidu.com/view/55d1f4146edb6f1aff001fec.html
- luogu3384 /// 树链剖分+线段树模板
题目大意: https://www.luogu.org/problemnew/show/P3384 树链剖分的讲解 两个dfs() 修改 查询 很详细很好理解 https://www.cnblogs. ...
- vue 父子组件、兄弟组件传值
参考文章:Vue2.0子同级组件之间数据交互 1.父组件可以使用 props 把数据传给子组件.2.子组件可以使用 $emit 触发父组件的自定义事件. (一)父组件给子组件传值,关键字:props ...
- js倒计时在移动端的应用
在移动端测试倒计时,将时间转化为毫秒会在苹果手机上出现NaN ``` //在安卓上这样写可以获取到的 var date = '2017-06-12 13:12:13'; var time = new ...
- 【bug】使用element-ui遇到在IE浏览器中点击enter会回到登录页
1.点击el-input框,会回到登录页(IE浏览器) 外层是el-table/el-form/el-input 添加可以解决 <el-form onSubmit="return fa ...
- ES5-call,apply,bind的用法
区别bind()与call()和apply()? 1. Function.prototype.bind(obj) : * 作用: 将函数内的this绑定为obj, 并将函数返回2. 面试题: 区别bi ...
- vs2013x64&&qt5.7.1编译osg3.4.0&&osgEarth2.7
此文仅备忘: 1.安装VS2013_Cn_Ult 2.安装qt-opensource-windows-x86-msvc2013_64-5.7.1 设置环境变量QTDIR,并将其bin加入到path中. ...
- 启动web项目,监听器、过滤器、拦截器启动顺序
启动顺序:监听器 > 过滤器 > 拦截器 记忆技巧:接到命令,监听电报,过滤敌情,拦截行动.
- day24 模块
Python之路,Day12 = Python基础12 模块 本质为py程序 分类: 内置模块 time time.time() ---> 当前时间的时间戳:浮点型 time.localtim ...
- Hadoop 平台搭建
一.在Linux中安装JDK并配置环境变量 输入javac 查看是否已安装java环境如果没有安装 sudo apt-get install openjdk-7-jdk再次检测 javac修改配置参数 ...