大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
昨晚朋友圈已经被连麦尤大的直播刷屏了,主要就是答答疑,聊聊天~ 总共大概聊了一个半小时。给你们看看帅气的尤大
我也抱着 「学习」 、「长见识」 的态度去直播间听了一个多小时(因为前半段有事,所以没能来得及赶上开场),说真的,虽然只听了一个多小时,但是收获还是很大的,这里也凭借着我7秒钟的记忆,记录下了一些尤大的一些答疑和闲聊
本文不是100%的原话复述,也略微掺杂了一些个人看法,当然接下来所有括号()
中的内容都是我自己加的,是为了你们更好得阅读
这个问题是我在进入直播间以后,弹幕呼声最高的问题了,尤大也对此进行了一番解释
「尤大」: 我觉得没有那么大的必要非说要去看源码,主要还是要看你去看源码是为了什么,是学习框架的思想吗?
「弹幕1」: 面试!
「弹幕2」: 面试!
...
「弹幕n」: 面试!
这里一阵无奈的笑飘过~
「尤大」: 感觉现在还是比较卷的,都说为了面试去看源码,其实无非是为了想提升自己的行业竞争力....(后面吧啦吧啦说了啥我也记不太清了,那就谈谈我自己的个人看法吧)
「个人看法」: 其实很多前端程序员在公司做的都是偏业务层面的,根本接触不太到很深层次的,看源码为了提升竞争力可以说是很真实了,但抛去这点,看源码还是奔着几个比较关键的点去比较好:第一,想要学习框架的思想或者你也想自己造框架、造轮子(尤大直播中说非常鼓励造轮子,还是挺好的);第二,为了业务,比如因不熟悉框架的一些原理而在写业务时产生那种不那么表面的问题,主要还是想提升自己的工作效率(毕竟谁也不想对着一个不知道怎么冒出来的bug想一整天,最后发现是自己的对于框架的原理不熟悉而导致使用不当)
「尤大」: 首先对于开发来说,最大的提升就是可以不用去考虑数组、对象的一些变化了,都可以很好得实现响应式,同时也支持了WeakSet
、WeakMap
这样的数据结构。
「尤大」: 其次呢,proxy
实现响应式其实是将一个raw对象(原始对象)包装了一层,产生了一个新的对象,这个对象跟原始对象是不相等的,也就是说,可能会存在原始对象占用内存并且无法释放的问题,所以建议你们在将一个对象声明响应式时,尽量不要用任何的变量去引用原始对象,而是直接将该对象放在reactive
中
这里对于尤大的解释,我用两段代码来简单演示一下吧
「不太推荐的做法」
<script> import {reactive} from 'vue' export default { setup() { let obj = { name: '零一', age: 23 } // 原始对象 const state = reactive(obj) // 将obj包装成响应式 return {state} } } </script>
复制代码
「推荐的做法」
<script> import {reactive} from 'vue' export default { setup() { // 不再先声明原始对象 const state = reactive({ name: '零一', age: 23 }) return {state} } } </script>
复制代码
该问题来自于尤大之前知乎点赞了的一个问题的回答
「尤大」: emmm,我点赞过吗?(不碍事不碍事)我认为一个凡是会说 「xxx技术是最牛逼的,xxxx技术就是垃圾」 的程序员其实是很不成熟的,因为他们但凡做过很多项目,维护过一个屎山💩一样的代码,都不会说出这样的话。当然对于一个框架或者技术,你可以说在理论层面做的非常好,但是真正将这个技术落地了以后,都会遇到很多问题的,所以面对真实的业务场景,对于技术是要做一些取舍的,而不是说xxx技术就是最好的
「尤大」: 哈哈,其实久而久之脸皮就越来越厚了(hhh,尤大还是很幽默的),之前看过一句话,大致的意思就是你有了一定的影响力以后,就一定会产生两种极端,一种是脑残粉;另一种是脑残黑,其实完全没有必要理会这些黑子,毕竟谁也没办法做到让谁都喜欢(心态很重要呀!)
「尤大」: 首先我觉得犀牛书还是很不错的,比较适合需要进一步提升自己的人看;红宝书.....(对不起,这里当时直播间卡了,啥也没听到,不过我个人觉得红宝书还是非常不错的,知识比较系统,对新人也比较友好);再推荐一本我觉得非常不错的书(说到这里,尤大直接在屏幕前举起了这本书),书名是《Effective JavaScript》,这本书相对来说比较实际,没有很多的主观看法,也挺适合想要进阶的人看的;再推荐一本德国的xxxxxx写的《xxxxxxx》(对不起,怪我英文不好,作者名和书名都没听懂,也没记下来),适合喜欢研究语言细枝末节的程序员,这本书对js很多犄角旮旯的讲解都很到位
「尤大」: 其实对于这方面,我没有太多的看法,因为我的路线也是比较特殊,跟大部分人的发展路线也不太一样,所以没有太多的发言权(高情商:哈哈,尤大还是很谦虚的,也很负责任;低情商:尤大的人生路线模仿不来!),之前在Google待了两年,然后又去一家创业公司待了两年,时间不长但也学到了很多东西,后来就去做开源了,可以跟你们聊聊专职做开源的一些看法。
其实做开源挺不容易的,心态要好,还需要一些机遇,Vue
也是在用户量这么大的前提下,才能慢慢做起来的。专职做开源比较难,尤其是个人的形式去做,因为在开源与商业化之间的转化其实是比较困难的。其实很多开源项目会去以企业的形式维护,这样他们可以更好得获得众筹或者去为更多的企业提供一对一的支持,而个人的话是几乎没有这样的机会的,即使有,成本也很大,所以只能通过开源产生被动收益(我没有这样的经历,猜测一下应该是获得一些个人赞助或者开源项目官网的广告投放之类的吧)。
对于Vue
的话,其实当用户量大起来以后(据说Vue
有150w+
用户),创造了工作的市场,有了内需,生态就起来了,有些公司也会来赞助一下Vue
,当然由此衍生出来,很多人就会产出相关的培训课、教程、模板、线下会议等等,这些都是可以与商业化挂钩的。
还有一点非常重要的就是,你的开源项目产生的价值要有很大的用户感知(翻译一下,其实就是说你的开源项目在平时被大家广泛得使用,家喻户晓的那种)
「个人看法」: 其实对于最后一点,我想补充一下,尤大的意思不是说你一定要去做有很大用户感知的开源项目,这样就违背自己的初衷了,我觉得每个开源项目的出现一定是为了解决工作中的某些痛点。只不过是说恰巧你如果做了一款比较不错的开源项目出来后,他产生的价值是否有很大的用户感知,他值不值得你去放弃工作专职维护他,你能否通过专职维护这个开源项目获得一些收益(金钱、名誉等等),当然了,家里有矿除外!所以我觉得尤大刚开始说的一句话非常得对——「做开源还是需要一些机遇的」
本文没有将直播中所有的答疑都列举出来,原谅我的脑子只记得那么多了。但对于我所听到的很多回答,有些离我很远,有些离我很近,我都觉得是很有收获的,期待尤大下一次的连麦直播答疑~ 最后再补一句!尤大真的是前端顶流啊!一个半小时的直播,2.2w+
的人在观看!
我组了个前端交流群,感兴趣的可以加我微信
Lpyexplore333
,一起交流前端技术鸭~