广州市南沙区基本建设办公室网站,站酷网站的图是用什么做的,安县建设局网站,找客户去哪个平台大家好#xff0c;我是若川#xff0c;诚邀你进群交流学习。今天分享一次直播的记录。我写过redux源码文章。动手按照文中例子学习#xff0c;我相信会有所收获。学习源码系列、面试、年度总结、JS基础系列redux的作者是谁#xff1f;Dan#xff0c;他的全称叫做Dan Abram… 大家好我是若川诚邀你进群交流学习。今天分享一次直播的记录。我写过redux源码文章。动手按照文中例子学习我相信会有所收获。学习源码系列、面试、年度总结、JS基础系列redux的作者是谁Dan他的全称叫做Dan Abramov同时他也是React的核心成员之一为什么我标题说Dan字节一面挂了呢因为昨天晚上字节的web infra团队连线了远在国外的Dan并且提前收集了200多个网友的问题从中精选了20几个让Dan来给一一解答在其中一个问题的回答中Dan说他从来没用过Vuehhhhh所以有小伙伴就说搞了个段子开场就是Dan的自我介绍他竟然12岁就开始编程了好家伙这到22岁不直接有10年编程经验了hhhh然后就是接下来一系列的问题Q1: 如何看待redux我不会推荐任何一个库要看使用场景吧。比如针对数据和缓存的库就该用对应的库Q2: 很多开发者认为react的入门很难有没有什么快速上手的方法我认为这取决于大家为什么认为React难可能难点不同因为你刚学javascript这是你的入门那就会觉得React很难。对于其它库例如Vue你可以运用一些已经封装好的方法慢慢的使用中你可以学会一些东西。而react你一上手就要编程这就是难点所在。如果有人觉得入门很难的话可能就意味着他们不知道怎么去做一个单页的应用程序可能不是react本身的问题但他们会认为是react难以理解的问题。可以先把javascript熟悉了再来用React肯定就很容易了。Q3: 对于已经开始用react的人给一些建议避坑很重要的一点就是你要用Hook的话我们推荐使用正确的方法把他们引入你的项目当中。对于react来说有两点一点是可模仿性新手可以去学别人的库参考着去学习。另一点就是对于react渲染来说你可以把他想成是一个计算你不需要做很多工作你只需要返回你需要的react UI即可这很重要Q4: 现在react更多关注的是函数编程js却不是这样的我认为react的确比其它工具更加偏向于函数但真正喜欢函数编程的开发者会认为react并不是一个函数编程的工具。我们也不会把组件分解成一个个很小很小的函数。React其实是借用了一些函数的理念并且基于函数但不完完全全是一个函数编程工具Q5: 现在前端发展迅速你是怎么跟上技术发展速度的我不是这样想的但有可能是我没有跟紧潮流可能是每隔几年就有这样的趋势但很多像现在的新技术跟以前的技术概念其实很相似这种情况下我不会被这种新兴的技术惊到因为他们对我来说没有什么太大的不同所以这其实就是对老事物一种新的理解我们围绕一些基本概念做一些开发而已咳咳既凡尔赛又有道理Q6: react在未来如何进步呢你认为现在存在哪些重大的问题呢对我来说我会注意到很多问题都是不同的不同的问题用不同的手段去解决其中一个问题比如说动画领域我们还没有涉足很多ui框架会针对一些不同的问题提供一些解决方案我的感觉是这些领域看起来不一样但其实都类似我们可以互相结合。以后我们可能会有一个组件工具或者提供更多的功能这些功能是紧密结合的这是我们希望的。Q7: Concurrent mode从18版本开始最新被放出来的模式设计时面临的挑战有哪些我想说当前还没有被发行出来所以我们可以去官网看一下blog上面有关于版本18更多的信息关于他有什么内容信息等等。我们现在有相关的工作小组并且每天从社区邀请50个人左右帮我们一起合作去发行18版本保证整个生态系统和他发行的版本是一致的我们在这方面已经有了很多的讨论大家都可以阅读评论获取更多的信息。我们所做出来的一个大的改变就是我们没有mode了它不叫concurrent mode而负责的是render的一种机制他不会有一个延长等待的时间比如你如果有输入他也可以同步的处理其实他是一种同步多线的处理这也是我们一直想攻克的难关。这才有了我们现在的18 Alpha版本Q8: 很多人会将react跟vue做对比你是怎么看待这两个框架的我自己没用过vue的whatReact核心成员之一竟然没有用过Vue此处尤大所以没法做很细节和全面的对比从设计方法上来说我们存在一些区别比如vue直接改变状态这有一些好处你可以随心所欲的想写代码就写代码很多人都很喜欢这样的方式但对于我们来说我们会做一些transition我们方式不一样所以从技术来说我们有很大的差异是两种完全不同的方向。vue可能是基于50年的编程的沉淀对于我们来说基于我们自己的做法当然他们的做法在技术上来说也是很棒的vue更多会用一些实用的技术解决实用的问题比如提供更加便利的动画的解决方案更便利的模板但对于react来说我们不想去做一些我们没有办法充分相信的解决方案所以我们给出的东西可能没有那么直接便利比如我们想做动画功能的话我们并不会去标准化一些存在的东西我们会有自己对于动画的想法这跟现在很多框架都是不一样的vue可以更快的拿到你所想要的但react我们有更丰富的库你就可以学会怎么去做这些事这就像安卓和ios一样ios其实很多功能都不包括的但是他可以帮助你可以更好的完成一些事情。Q9: vue3停止用flow了react还用flow我并不认为这是一个很关键的问题我认为这主要取决于库本身是怎么写的。他更多的是关注框架本身如何建立的跟用户没啥关系他并不会影响用户使用react的过程我们并不在意这个点我们并不是不能改变只是不太值得Q10: 你对一些新框架有什么看法他们都没有使用vdom我并没有多么细致的使用过这些工具没有什么深度的见解的确有很多的设计他们是很棒的而且大家都走的不同的路可能是完全相反对于vdom这个词我不太喜欢大家理解都不太一样我认为这个跟性能没什么关系我不太使用这个称呼因为这使人很困惑他指的是UI的内存我们想让他保留下来因为他能给我们更多的选择。对于一些复杂的功能我们的解决方式可能会使用UI的不同版本比如最左边是0%右边是100%中间会有一个滚动条在调整滚动条只需要调整帧就好了我们如何产生这种帧就需要很多的ui进行协助这就需要vdom的协助这和性能的关系不大。假设我们要看整个app的性能需要看你每个组件的功能是什么他可以做什么看看app背后的代码是什么而不是单纯对几行的代码做分析和解读。Q11: 目前用的大多是vue和react你对于前端来说如何看待五年后的前端领域我对这个问题的理解是ui代码有很多不同的方式比如放在服务器上还是客户端上如何去整理它那我觉得在这方面 框架也可以解决所有的问题我觉得next.js是可以把react相关的观念去简化所以他有可能会取代目前的功能如果大家对Server Component 感兴趣的话你的思考模式是围绕组件进行的这是可控的那你也可以做出自主的决定吧什么样的组件在服务器去运转不会占用你太长的时间代码也是一样的他们会更加的清晰你就不需要去思考你是在做渲染还是做别的事情这是一种很不错的优化Q12: 对于找工作的同学来说什么样的科技公司更吸引人我觉得你身边的人比较厉害你能学到很多东西这是良性的工作环境可以学习新的知识而且还需要你的自主性会比较强不能命令式的工作其实当时弹幕里全是一个字钱????Q13: 说说你的个人经历你刚加入facebook如何学习react的相关知识的react代码其实比较复杂在最开始需要研究代码去熟悉主要还是去了解整个的架构把它了解透彻了没问题了就Ok了。还会给一些人提供帮助我会在一些公开的平台上帮助别人解决问题回答他们的问题在那段时间阅读了各种人提出的问题几千条这是一个非常好的方法帮我熟悉自己所做的东西帮他们解决问题也对自己有帮助。Q14: react核心团队或社区如何维护这么大的code我们遇到很多有趣的挑战我并不认为我们的code很大我们也是在慢慢的学习如何运行这样的项目我们有超过5000次的测试。react用户只会用来rendering不会深入到我们库里。如果你去看我们的代码我们可能会有一个老js和新Js即源码文件中以.old.js或.new.js为结尾的文件他们基本上是相同的我们这么做是为了应对一些有风险的改变我们没有看到回归我们就会把新的改变复制到旧的当中这听起来很奇怪但效果还不错。我认为facebook就像一个测试机器一样我们会在工作中验证我们看到了百分之一的回归评论下降了1%我们就花了一个月对各个组件做实验区检测发现了一个bug并解决了。即使当时下降了1%但是对于facebook来说是一个很大的损失。Q15: 作为react用户我们去看源码是不是一个好的做法我并不认为很有必要因为很难去理解我们的源码如果你直接去读你可能会很困惑因为你不了解底层的框架有人跟你解释一下可能更好一些。我经常做的一件事就是用一个debugger去看这些代码不同的去向比如在chrome performance里看到函数代码的栈你可以看到每一个函数发生的不同的事情比如你在升级的时候就可以看到一些新的事件和功能所以可以从性能这个方面看到这些基本的功能的目的是什么Q16: 你是如何保持对react的热情的我本身就很喜欢react理念跟我对ui代码的想法很一致我在facebook之前在初创公司当时直接用了react当时不流行但给我们工作带来了很大的便利我们还可以清楚地看到各个功能的状态我们经常问自己想在屏幕上看到的功能是什么react就能解决当下这个问题Q17: 如何像你一样优秀前端好的学习资源分享我并不确定我有多么优秀如果你认为优秀可以做一个非常好看的app那我并不是所以说我并不是很确定大家想听到什么样的建议。建议的话我觉得你可以不用vue或react这样的框架去写一些ui框架或者做一些小游戏比如贪吃蛇这样去促使你去做即使他有一些复杂度但能从中吸取一些经验Q18: 休闲时间会做什么呢偶尔玩玩堡垒之夜但是也很久没玩游戏了平时就听听歌、散散步Q19: 对于中国开发者的建议我觉得我不太确定一些事我不知道react在中国多少人在用在这个社区里大家可以有不同的选择非常感谢他们在翻译上做出的工作此处印记中文我不太确定react在未来能否风靡中国希望大家去多推荐一下react让更多人了解到我们将来做出更多的改变Q20: 未来是否愿意会在中国的react社区更多得活跃一下必须滴最后辛苦Dan啦全程一个半小时一直在解答大家的问题一口水都没喝。而且他回答问题都回答得非常详细都尽可能地多说一些所以远不止我记录的那么点文字真的是很有爱了~ 期待下一次Dan与国内程序员的互动也感谢 Web infra 团队提供的这次机会最近组建了一个江西人的前端交流群如果你是江西人可以加我微信 ruochuan12 私信 江西 拉你进群。推荐阅读我在阿里招前端该怎么帮你可进面试群毕业年限不长的前端焦虑和突破方法前端抢饭碗系列之Vue项目如何做单元测试前端使用puppeteer 爬虫生成《React.js 小书》PDF并合并················· 若川简介 ·················你好我是若川毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》多篇在知乎、掘金收获超百万阅读。从2014年起每年都会写一篇年度总结已经写了7篇点击查看年度总结。同时活跃在知乎若川掘金若川。致力于分享前端开发经验愿景帮助5年内前端人走向前列。点击上方卡片关注我、加个星标今日话题略。欢迎分享、收藏、点赞、在看我的公众号文章~