MrVan
V2EX  ›  问与答

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

  •  1
     
  •   MrVan · Jan 18, 2019 · 3003 views
    This topic created in 2671 days ago, the information mentioned may be changed or developed.

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

    15 replies    2019-01-21 14:53:24 +08:00
    wly19960911
        1
    wly19960911  
       Jan 18, 2019   ❤️ 1
    面向对象是一个非常好的思路,我建议学习如何使用 ts 开发,ts 可以保证面向对象的大部分功能,面向对象本身是一个高效的开发方式,现在 vue 也可以用 ts 开发了。

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

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

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

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

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

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

    另外提醒一点,框架里面别随便用 this 去取变量。this 是很容易把你的方法耦合住的,本身封装就是不能使用参数以外的变量去实现东西的。如果 this 乱飞最后分离逻辑苦的是你自己,你甚至修改 bug 都不知道是谁修改了变量。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 13:50 · PVG 21:50 · LAX 06:50 · JFK 09:50
    ♥ Do have faith in what you're doing.