额,回校一个月,刚听说公司被 react 入侵了......

2016-05-10 14:08:27 +08:00
 tcstory

额,简单的说一下吧.lz 在一家创业公司做前端,由于是新手,所以一直是一边工作一边学,从最初了用原生 js 撸完复杂的功能型页面,到最后自己选择了使用 vue.js 来开发公司的项目,也算是对于前端开发有自己的一套理解.

当初选择 vue.js 的原因是,我那时候考虑学习的是 avalon.js 和 vue.js,本来想让 avalon.js 成为自己第一个学习的框架,但是因为它的文档太恶心了,对于那时连 MVVM 都还不懂的 lz 来说,上手太难,于是选择了 vue.js.发现确实好学,文档也很优秀.额,为啥没有选择 react 呢?我忘了.

公司有一名后端,就是它谋划了这次的政变,他之前就一直很希望在公司推广使用 react,那时候我就很不爽,因为那时候我了解过一点 react,觉得他并不是我的菜,而且,react 全家桶我可是久闻大名.但是后来还是 vue.js 胜出了,原因是因为可能是名义上算是我们 CTO 的一个老外,觉得react 有的优点 vue 也有,而且他也不喜欢 react.

这次我回校答辩,请了一个月的假期.就在今天,我同事和我说了 react 替换掉了 vue 的事,我听了是感觉很不爽的,但是又无可奈何.

额,为了防止大家喷错,我接下来讲解一下自己的学习态度吧

我个人是比较认同真阿当的对于前端的看法的(求轻喷),我是比较重基础的,喜欢造轮子,而且也不太迷行权威(自我感觉),我目前的学习方向是:

  1. 通读 css2 的规范(看到了第 9 章)
  2. 看 vue.js 的源码(还没开始)
  3. 了解一下服务器的渲染(还没开始)

关于第 3 点我简单的谈一下吧.其实我个人会一点服务器端的知识(我的毕设就是用 node.js 搭建起来的),我之所以想弄服务器渲染,就是因为当初 php 作为页面的模板的时候,我觉得很变扭,很不习惯,我将来会学习一点服务器方面的知识,但是绝不不是因为自己想做后端,或则是成为所谓的全栈,而是我想解放前端的生产力

对于 react 的态度

其实虽然我目前在学习 vue.js,但是我本身不讨厌 react,也不反对学习 react,我讨厌的是什么?是那些学了 react 就以为自己天下无敌的 sb,好像前端开发非 react 不可.以前我们公司的后端在和我们的产品经理聊我们前端页面该如何开发的时候,我能很明显的听出来他们的态度,就是这个功能只能 react 来做,只能用 react 来解决这个问题,我只是心里觉得他们 sb,但是还是没有多说什么.我很多时候心里在想,如果 react 他的爹不是 facebook,那么 react 肯定没有那么火.

对于这次技术选择的思考

其实我很困惑的是,为什么让一个后端来决定前端该用什么技术?其实严格来说,整个公司只有我在前端上的学习的时间是最久的,有一个同事是刚从 php 转行来做前端的,其他人是用 js 来开发游戏(这个严格来说不算前端吧?),其他人是后端.我很不理解这一行为.难道是因为受到了全栈的影响?

对于未来的思考

我不清楚公司使用 react 是否以及成为了定局,如果是,那么我也会学 react,只不过自己应该不会主动去研究,工作上用到多少就学多少(我应该会重点关注 react 解决问题的思路).不过我也应该不会因为这个原因而离开公司,我忘了是什么时候体会到这样一个道理,就是与其去指望换了公司能找到一个合适自己的团队,还不如找到一个和自己志同道合的人.我的一个同事之前和我说过,他之前上班的公司,就他一个实习的,他的同事们都块 30 了,聊得都是房,车,小孩上学之类的问题,根本没啥共同话题.

额,我遇到了这个问题"前端项目应该如何管理素材呢?",感兴趣的同学可能帮我看看嘛? 地址是这个: https://segmentfault.com/q/1010000005084927?_ea=777596

16012 次点击
所在节点    程序员
107 条回复
ianva
2016-05-10 16:26:47 +08:00
react 这个学习成本低好多, vue 左学 angular 又看 react 的东西不觉得有特别的地方, react 的好处在于会默认选择如 flux 风格的框架,比如 redux ,项目维护上确实好很多,状态的维护对前端非常重要,虽然 vue 也有类似的,但通常不会去这么选择
多学几个东西没什么不好的,特别 react 这种分分钟上手的真没什么可说的
alexsunxl
2016-05-10 16:40:51 +08:00
vue2.0 很多东西都朝着 react 的特性演化, 虚拟 dom ,服务端渲染,数据状态管理 vuex
这些越来越成为标准化的东西。
感觉你想太多,情感色彩带得太重。都学一下,兼容并包,对你以后有好处
alexsunxl
2016-05-10 16:43:08 +08:00
@ianva react 库 本身是简单,但平时大家所说的 react ,是 react 全家桶
整合全家桶,搞明白组件生命周期,用上 redux/flux ,再加上服务端渲染。这些是门槛是非常高的
cYcoco
2016-05-10 16:44:17 +08:00
我不懂前端但是我看到了真阿当我就哈哈哈哈哈哈哈哈哈哈哈哈
ianva
2016-05-10 16:45:56 +08:00
flux 风格的框架确实解决了很多前端的问题,之前用 angular 遇到过大量状态维护的问题,导致项目维护性很糟, react 本身并不比 angular 和 vue 优秀,但 flux 风格的建筑学带来的思考方式会让你有更多思路,特别是 redux ,在状态维护上非常出色,所以说尝试下挺好的。
vue 个人确实没觉得有啥,早期版本其实是个 angular 的简版,后期又学了 react 的特性,有多少是作者自己的东西呢?不看好这个框架在未来有什么好的发展,只是个折中方案罢了
agui2200
2016-05-10 16:57:46 +08:00
只说一句~PHP 是世界上最好的语言.补楼主一刀,前端工程化,有什么不好的?
sox
2016-05-10 17:01:01 +08:00
@emric 啊,基本没有不支持 .vue 的主流编辑器
ianva
2016-05-10 17:02:09 +08:00
真阿当说的有些前端基础问题也有一定道理,但是这些东西已经不在这么重要了。

css 本身有太多方案可以解决问题, html 从 05 年开始倡导的语义化在实际中又有多少用出呢,特变现在前端 APP 化,不紧紧是作为一个文档的时候,另外 w3c 都在指定 custom tag 的时候。
关于 DOM 更是,有 angular 和 react 的时候操作 DOM 本身就是在降低生产力, jQuery 本身也提供了更好的接口,所以这些的意义没这么大了。

关于造轮子,这件事的成本越来越高,这个高的意思是在于,之前的轮子太简单了,只是考虑到语言的加强, api 的封装,组件的积累,但现在的轮子大都都在提高生产力和开发方式,维护性上,而且如果一个轮子没有大量的周边也基本上是自己玩了,很难说像弄出 angular , react 这样开宗立派,而达不到这种级别的轮子时,这个轮子的用性就很低,所以现在的轮子也只能是一个组织,和大牛了。

但关于他列举的那些 api 的学习问题也只能是笑料。
crs0910
2016-05-10 17:14:16 +08:00
@sox 抓到你赶紧问一句 atom 里面 template 用 jade 如何高亮?
sox
2016-05-10 17:24:36 +08:00
@crs0910 language-vue-component + jade
zakokun
2016-05-10 17:25:05 +08:00
拿着实习生的钱,操着 CEO 的心
mars0prince
2016-05-10 17:28:52 +08:00
换一个破框架也至于这样,那要是后端从 python 换到 java ,你不是要自杀了?
Felldeadbird
2016-05-10 17:37:49 +08:00
前端不至于被黑啊,应该是后端问题。
emric
2016-05-10 17:52:48 +08:00
@sox

仅仅只有语法高亮。
例如插件和完成度比较高的 atom , 没有自动完成、没有 snippets 、没有 emmet 、没有 eslint ,写起来已经和记事本没有什么区别了...

所以说小东西我会很推荐用 vue ,但是到了大项目或者需要团队协作的时候,我会更推荐 react ,因为他的周边已经很完整,坑基本都有人帮你趟过了。
emric
2016-05-10 18:16:55 +08:00
@emric 我更新一下,自动完成 和 snippets 是有的。(刚才去换了个插件) ( ̄ε(# ̄)
现在我主要的怨念是在其他插件的配合上面。
sox
2016-05-10 18:57:33 +08:00
@emric 如果你愿意找,是有的,而且很容易找到😁
sox
2016-05-10 19:01:30 +08:00
@sox 233 原来你回了两条
F1ReKing
2016-05-10 19:01:41 +08:00
。。。不是很懂你们
donglingyongadls
2016-05-10 19:25:48 +08:00
看到阿当粉先 block
lk1ngaa7
2016-05-10 19:31:42 +08:00
@avastms react 和 PHP 的关系是什么呢?还是他们只是思想一致?

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

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

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

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

© 2021 V2EX