V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
MrVan
V2EX  ›  问与答

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

  •  1
     
  •   MrVan · 2019-01-18 11:44:50 +08:00 · 2497 次点击
    这是一个创建于 2163 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

    另外提醒一点,框架里面别随便用 this 去取变量。this 是很容易把你的方法耦合住的,本身封装就是不能使用参数以外的变量去实现东西的。如果 this 乱飞最后分离逻辑苦的是你自己,你甚至修改 bug 都不知道是谁修改了变量。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:26 · PVG 20:26 · LAX 04:26 · JFK 07:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.