2017 年,从零开始学前端开发,有推荐的技术栈么?

2016-12-29 11:18:50 +08:00
 gevin

如题,想知道各位大神有何建议?(方向是前后台分离)

ps :我个人有 N 年后台开发经验,基于传统的 html+jquery+css 那套,也能写点前端。近几年前端爆发式的发展,而我近两年的焦点是微服务架构相关的,已经和前端技术的发展脱节,想再跟进一下前端的发展潮流却不知从何入手,求各位大神指点

11167 次点击
所在节点    程序员
80 条回复
mingyun
2016-12-29 23:08:25 +08:00
@lijsh nice
murmur
2016-12-29 23:14:43 +08:00
@lijsh 组件化是绝对不能跳过的,一上来就掌握这个我认为是最好的,尤其是就这组件化把 javascript 那套 prototype 反人类的机制批判一番
你是没见过写 java 的人去按照 java 的设计模式写出来的 js 是多么恶心,各种继承重载父类子类,实际上你只需要两个( 1 )抽象组件( 2 )抽象 utils
finely
2016-12-29 23:22:43 +08:00
为啥没人推荐 Ng2
murmur
2016-12-29 23:26:18 +08:00
@finely 轮子太少了 已经被 react 和 vue1 碾压了 ng2 的话要搭配 ionic2 来用
lijsh
2016-12-29 23:33:18 +08:00
@murmur 我认为组件化更适合团队作业的大型 SPA 。楼主只是想短时间内了解前端的风向,了解一下这些框架的思想,最简单直接的方法就是在通过 Vue.js 入门,掌握数据驱动界面的那一套。这甚至都不需要上 Webpack 和模块化,直接在旧项目中 jQuery 的页面引入 Vue.js ,做好 HTML 上 data 的绑定,留出事件处理函数的接口,就可以了。

我发现你这个 ID 老是在发表主观性很强、只针对特性项目不具备普适性的言论,感觉有点误人子弟。
Wangxf
2016-12-30 04:26:48 +08:00
react , vue 两个都接触过,现在深入 vue 中, vue 上手容易, vuex 这些概念名词比 redux 简化了不少,一般的项目都够了,有多少人用 react 在写“大项目”的
NathanInMac
2016-12-30 04:58:27 +08:00
一个 ember 提都没人提的年代。。哎
murmur
2016-12-30 07:58:51 +08:00
@lijsh 误人子弟么? redux 这种东西活活把挺好的东西拆成三块,本来组件化已经拆一次了, angular 那种 mvc 严格分层的你们不喜欢,但是 redux 拆 action 和 reducer 你们就喜欢,搞不懂前端风向标
学习成本、维护成本、对团队整体实力的要求具备普适性么?还是你认为全天下的前端都有阿里腾讯的实力?
真要说普适性,我还不如推 jQuery
murmur
2016-12-30 08:04:33 +08:00
@lijsh 顺便补充一下, web component 这个概念早就提出来了,但是 vue react ng2 都没按这个标准做,大家都是自己搞了一套 component 的实现,你都用这个框架了还想跳过组件化,可能么
因为这三个框架无论怎么看都是在搞组件化啊,其实 react 那个是函数起名误人子弟,他要改成 React.createComponent 什么事没有(但是在生命周期里又是 componentShouldXXX 了),偏偏叫 createClass
lijsh
2016-12-30 08:52:17 +08:00
@murmur 能不能回到楼主的问题上?用什么框架、走怎样一条学习路径难道不是看实际情景的吗?楼主是后端出身、 jQuery 套插件和 Bootstrap 肯定都懂,现在需求是怎样快速掌握前端风向。 Vue.js 是渐进增强的框架,最简单的情况下,你 script 引进 Vue.js , new Vue 实例声明接管哪个区域和需要 watch 的 data ,就可以完完全全代替 jQuery 和那丑陋的 DOM 操作了。不比组件化那套简单得多?

等到了解数据驱动 UI 的理念再扩展,无论是组件化、状态管理都是顺理成章的事情。整个学习线路 Vue.js 都有配套,真真正正做到渐进增强。

Web Component 是标准没错,那 Polymer 为啥没人用?不还是看实际情况吗? jQuery 、 Backbone 乃至早期的 Angular 都没组件的概念,就是因为大部分项目里根本不需要。需要组件复用的情况就是团队作业,前后端分离的大型 SPA ,你觉得一上来就让楼主掌握这个,真的合适吗?
murmur
2016-12-30 08:55:18 +08:00
@lijsh 合适,社招简历上没有 MVVM 框架的经验是硬伤
murmur
2016-12-30 09:01:16 +08:00
@lijsh 这里我需要确认一下, vue 那里的 watch 好像是计算属性,本身的 scope 还在 component 里,但是 ng 的 watch 是真的可以监控 js 源生变量的改动
我看文档这也犹豫了好久,理论上 vue 用 getter/setter 是应该能监控外部作用域里的变量的

那么反过来, react ,你在构造函数里直接可以拿到实例,直接可以调用所有成员函数,只要能调到 setStatus ,你在哪里都可以操控这个组件,就是“优雅”与否

然后呢, vue 的构造函数就是 vue.compoent 。。你又跟我扯组件化的概念。。
chairuosen
2016-12-30 09:11:32 +08:00
@murmur 可以自己实现一个 store ,把一个 object 当做一个 Vue 实例的 data 传进去,然后 export 出去。别的地方 require 这个文件的得到的 object 就会在 vue 里同时双向绑定
比如
```
var store = {}
new Vue({data:{store:store}});
module.exports = store;
```
harry890829
2016-12-30 09:14:28 +08:00
收藏起来,搞不好明年我也要写点 js 东西……烦躁中……
xemebgyx
2016-12-30 09:15:49 +08:00
lijsh
2016-12-30 09:19:21 +08:00
@murmur Vue 官网上的教程,组件内容是放在最后的,单文件组件一节在进阶里,我想这表明作者的意图了——先学数据绑定、响应式更新,再接触组件的概念。

不扯太远了,回归主题。我的建议是上 Vue.js 和 ES6 ,就跟着官网文档学可以了。无论是从旧有的 jQuery 思路跳出来,还是后期扩展项目, Vue.js 都能应付自如。
gevin
2016-12-30 10:08:14 +08:00
@lijsh 那么看完你们的讨论,我只要从 vue.js 入手就行啦?反正我也不是专业前端,也不打算转前端
Mbin
2016-12-30 10:21:14 +08:00
Vue 大法好!
SKull4
2016-12-30 11:36:06 +08:00
@lijsh 怎么找练手的项目?
HerrDu
2016-12-30 11:41:45 +08:00

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

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

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

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

© 2021 V2EX