2019 年对于一个初级前端,该如何学习?

2019-01-18 11:44:50 +08:00
 MrVan

毕业到现在工作小半年了,一直用 jquery 开发,陆陆续续学过配置 webpack,node 基础,vue 全家桶(vuex 没用过),但工作中实际没有用过这些技术栈,工作之余一直在看《 js 高级程序设计》想提高 js 能力和 dom 能力,学习了解面向对象和设计模式,请问这样的学习方式对于工作中的我来说是好是坏?

2485 次点击
所在节点    问与答
15 条回复
wly19960911
2019-01-18 13:39:30 +08:00
面向对象是一个非常好的思路,我建议学习如何使用 ts 开发,ts 可以保证面向对象的大部分功能,面向对象本身是一个高效的开发方式,现在 vue 也可以用 ts 开发了。

面向对象在 js 的应用不够明显,虽然是用了,实现了,但是也仅仅是会面向对象思路的人可以剖析。初学者太累了,直接上 ts 让你体验下面向对象的开发。

比起自己学习书上的内容,很多时候看项目来得更快,可以考虑看看一些工具和 ui 框架的源码,看他们是怎么设计一个组件,封装和里面封装代码的实现。现阶段没有应用理解别人为什么设计这些东西,搞设计模式,我感觉是一个很累的东西,等回头从新复习下,可以事半功倍。

我是认为死读书属于闭门造车系列的。
MrVan
2019-01-18 13:57:22 +08:00
jquery 和原生 js 的 DOM 操作,现在还有必要深入学习吗,框架三马车全是基于数据驱动,思想不一样,所以我想提高下 js 处理数据的水平,包括编程能力,ts 暂时可能不会考虑,因为还没到那个阶段
MrVan
2019-01-18 13:57:39 +08:00
@wly19960911 jquery 和原生 js 的 DOM 操作,现在还有必要深入学习吗,框架三马车全是基于数据驱动,思想不一样,所以我想提高下 js 处理数据的水平,包括编程能力,ts 暂时可能不会考虑,因为还没到那个阶段
wly19960911
2019-01-18 14:15:39 +08:00
@MrVan #3 原生操作 dom 很少见了,用的话直接抬上 jQuery 就好,其实我们提个问题是,你原生操作的场景应该是什么样子,或者你看见书上写的场景你体会过吗。如果感觉 ok 了就好了,我也用 jQuery,很多操作都是现学现卖,当然和你一样工作时间不长,现在是转向面向对象开发的思路。

ts 实际上和 js 的语言是一样的,互相可以调用,没什么阶段不阶段的说法。学什么之前,搞清楚自己到底想解决一个什么样的场景,从场景出发,脱离场景的学习就是纸上谈兵,我一直是这样学习的。我对于你所谓 js 处理数据的水平是什么不清楚,你想解决一个什么的情况呢。

对于数据驱动这个东西。实际上是省略了你对于模板的操作,思想没什么不一样,反而还少了解了一个东西,框架真的是只有数据驱动吗,背后真正的是一套封装组件思路,其实里面也可应用面向对象的思路去处理很多东西。所以我现在学习的都是怎么做组件,组件内的各种逻辑数据流的怎么组合。

我也是工作不久的,所以以上都是我自己不成熟的意见
wly19960911
2019-01-18 14:18:40 +08:00
另外谈一下,ts 你可以不用面向对象,但是至少一个类型就能解决你代码里面的各种低级错误,坚持使用可以让你的代码更容易看懂,类型是最好的注释。
q8164305
2019-01-18 14:38:39 +08:00
jquery 你可以不用,但不可以不会,起码你得知道 jquery 到底解决了什么问题,玩前端不可能不操作 dom 的,操作 dom 你就会用到 jquery 那套思想
coderluan
2019-01-18 15:47:29 +08:00
Fntys
2019-01-18 17:05:03 +08:00
@MrVan 我的学习建议是直接用框架撸一套项目先
wszgrcy
2019-01-19 07:29:39 +08:00
其实我想知道的是,如何划分初级,中级,高级前端。。。一直不知道自己位置(哪里需要更努力)。。。换句话说,不知道那块短板应该先补起来
MrVan
2019-01-21 14:46:14 +08:00
@wly19960911 我目前使用 jquery+art-template 开发,使用的都是 cdn 方式引入,并没有使用 gulp/webpack 这一类的工程化打包工具,想问下大佬你平时开发模式是什么样的?,ts 我知道是强类型了,弥补了 js 弱类型,我可以尝试下
MrVan
2019-01-21 14:48:25 +08:00
@wszgrcy 就想 lol 的段位一样,青铜,白银,黄金,钻石,王者,大师,。。。。慢慢学基础吧,基础很重要
MrVan
2019-01-21 14:49:03 +08:00
@coderluan 谢谢
MrVan
2019-01-21 14:50:42 +08:00
@q8164305 jq 我会,最基本的 api 都会用,目前不会基于 jq 写插件,做项目都是 jq+art-template 模板引擎来做,没有使用构建工具来工程化,感觉活在刀耕火种的年代
MrVan
2019-01-21 14:52:37 +08:00
@Fntys vue 我做过播放器,慕课的视频也在看,仿去哪儿网,vue 官网都看了 n 遍,感觉自己基础都学得差不多,问题主要是针对基础 js+html+css,脱离了框架不知道还会做什么
wly19960911
2019-01-21 14:53:24 +08:00
@MrVan #10 我平时用框架工作的,个人是 angular,不过 angular 光学习成本就很高,工作还少。现在三大框架都全部支持 ts,不要去把所谓开发模式想的很重要啦,不过的确减轻了做 demo 上的压力,其实思想是一样的,你要如何做个更好的封装组件。

另外提醒一点,框架里面别随便用 this 去取变量。this 是很容易把你的方法耦合住的,本身封装就是不能使用参数以外的变量去实现东西的。如果 this 乱飞最后分离逻辑苦的是你自己,你甚至修改 bug 都不知道是谁修改了变量。

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

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

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

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

© 2021 V2EX