项目前端框架选择的疑惑

2015-12-23 12:26:18 +08:00
 ne6rd

3 个人的小团队,一个负责 java 后台,一个实习,我负责前台。
之前的一个后台管理类项目,用的是 angular ,开发起来挺顺畅。但是也有一点小问题:
1.IE8 里在部分交互场景响应比较卡。
2.单页面应用访问首页的时候要把所有资源都加载好。
这两点在面对几十个用户使用的后台管理项目中还算可以接受。

现在一个新的项目,内部 OA ,用户数大概 3000-5000 左右。要参考以前的系统来做。
以前是多页面,以 iframe 的形式镶嵌在另一个网站中。界面交互也有很多弹出窗口(涉及到在线 office 文件的浏览编辑),感觉并不太适合用 angular 。

这两天也在看 react ,但是好像常用的组件好像没有 angular 丰富(比如 angular-ui )提供的那些。
而且还涉及到前端的数据绑定问题,好像还要使用 redux 之类的框架。

因为对 react 了解不深,请问我这样的需求应该如何选择前端框架呢?有没有其他的方案?
要不要考虑 java 后台的模板技术?谢谢

9962 次点击
所在节点    前端开发
47 条回复
ixiaohei
2015-12-23 12:52:24 +08:00
建议不兼容 ie8 ,然后随便怎么选
clino
2015-12-23 12:53:46 +08:00
avalonjs 对 ie 支持较好
甚至之前说 ie6 都行
learnshare
2015-12-23 12:56:20 +08:00
放弃 IE 9 及以下,基本上什么都能用了
answeryou
2015-12-23 13:14:35 +08:00
针对交互性比较强的应用用 Angular 很合适,对于资源加载的问题你可以使用懒加载,你所说的问题并不是框架问题,还有针对你目前的团队资源, React 这一块也应该不是很熟,如果项目时间比较紧还是用原来熟悉的框架吧
ne6rd
2015-12-23 14:26:31 +08:00
@ixiaohei
@learnshare
我们当然非常想放弃 IE8 ,然而很遗憾,起码 3 年内还是做不到的。内部使用环境,不是互联网可以挑用户。

@clino
avalonjs 看了下,不知道性能怎么样。 angular 并不是不支持 ie8 ,只是部分交互上有卡顿感。


@answeryou
时间倒不是很急,大约有 1-3 个月可以用来准备。只是想用一个比较合适的工具来解决问题。

谢谢各位回复
crazyxin1988
2015-12-23 14:27:16 +08:00
用 jquery 不挺好的吗
ne6rd
2015-12-23 14:43:53 +08:00
@crazyxin1988 jquery 的话需要大量的 dom 操作吧。我们在使用 angular 之前就是只用 jquery 。
代码写出来逻辑太混乱了。控制界面样式的和业务数据逻辑的都混在一起。
chairuosen
2015-12-23 14:53:15 +08:00
vue 大法好,搭积木一样想怎么用怎么用。
想跟 angular 一样用,就上 vue-router ,跟 angular 不同的地方是支持异步的组件。
还可以只把 vue 当库用, DOM 交互多的地方就套上 vue ,其他地方不用。
chairuosen
2015-12-23 14:54:25 +08:00
@chairuosen 刚看到必须 IE8 ,当我没说~~~
learnshare
2015-12-23 14:56:15 +08:00
@ne6rd 内部系统当然更有能力要求抛弃 IE 了
ne6rd
2015-12-23 15:01:42 +08:00
@learnshare 我们只是外包方。。。大哥这一点您就不要纠结了
ne6rd
2015-12-23 15:04:38 +08:00
@chairuosen vue 了解过,应该是很不错的。无奈 ie8 不支持 Object.defineProperty ,模拟的办法都没有
ne6rd
2015-12-23 15:14:48 +08:00
@learnshare 增加了附言,我们也是有无奈的 [
hanai
2015-12-23 15:20:52 +08:00
react IE 8 没有问题,组件的话 ant.design 不错
chairuosen
2015-12-23 15:28:09 +08:00
"所以如果要淘汰 ie8 ,不仅仅是淘汰浏览器,更要淘汰操作系统了"
这句话不对啊,强制安装 chrome 就完事了
ne6rd
2015-12-23 15:30:21 +08:00
@chairuosen 前面有说了,因为密钥控件只支持 IE 系列。我们又没有能力去开发一个非 IE 内核的控件出来。
所以即使淘汰 IE8 ,也只能往 IE9-11 的方向发展。
然而 XP 最高只支持 IE8 。。。。。。
chairuosen
2015-12-23 15:33:32 +08:00
@ne6rd soga ,变态的甲方
taoche
2015-12-23 15:34:42 +08:00
1 :你们的情况并不适合用 react ,不说 reat 开发效率不高,且选择 react 就面临被迫选择 react 的生态圈,对你们这个团队来说还是影响很大的。

2 :继续 Angular , Angular 1.5 版本之后 除了 dirty-checking 以外,已经没什么特别大的硬伤了。


至于你们的问题:
问题 1 : 响应比较卡,我不清楚是「渲染」比较卡,还是 「交互」比较卡,这些虽然不能彻底解决,但都可以缓解。比如 惰性渲染 html 片段,不使用 操作 DOM 方式的动画,以及可以用 immutable 减少内存开支

问题 2 : 其实 SPA 并不用 在首页把所有资源都准备好,还是可以以 page 为颗粒去加载,无论你用 什么模块加载器都可以解决这个问题。配合好 过度动画,其实很好解决。


注:虽然 Angular 性能不高,但更多时候是开发者自身使用不当。 虽然可以提高 IE8 的性能,但是想做到 足够流畅 是非常困难的
ne6rd
2015-12-23 15:44:53 +08:00
@hanai 感谢,看了感觉挺不错的。而且风格偏紧凑,适合一些国人的习惯。
不像 bootstarp 那样大行距,大留白了。
clino
2015-12-23 15:48:45 +08:00
@ne6rd avalonjs 的作者很注意性能 很多选择是在注重性能的前提下做出的 avalonjs 的性能相当不错的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245570

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX