×

react hook

react hook(现在决定报班学习了,在纠结java还是web有好的建议吗)

admin admin 发表于2023-03-26 09:55:23 浏览33 评论0

抢沙发发表评论

本文目录

现在决定报班学习了,在纠结java还是web有好的建议吗

你好,我觉得选JAVA会好一点,为什么真么说,主要原因有以下几点:

第一,JAVA是一个系统的语言,自诞生依赖一直非常的流行,JAVA的应用面非常的广泛,无论是桌面系统还是web系统都需要JAVA来处理。

第二,目前很多互联网行业都是JAVA语言为基础,虽然web现在越来越广泛,但是JAVA的面还是比web要广,况且web目前来看虽然也很热门,但是毕竟很多东西还是需要依赖服务端的东西。

第三,就实际来看,JAVA的发展也要比web好一些,毕竟像大数据等技术都是基于JAVA需要开发的,而且在项目组中一般也是JAVA开发人员作为主导。

第四,从两者的语言特性来看,JAVA的底层实质更加丰富,而web相对来说比较单一,更多的是框架的不断演变,封装,这无疑也增加了学习成本。

作为程序员,你在2019年都有哪些进步、收获与成长

很高兴回答这个问题。我是程序员领域中工作8年摸爬滚打的web前端一枚,2019年对于我所在的前端开发领域来说也是比较深刻的一年,其中有很多进步、收获和成长。下面,我来总结一下。

一、进步

“学如逆水行舟,不进则退”。进步是对比于以前,哪怕很微小的改变,也是进步的开始。对于工作多年的我来说,进步更加珍贵,珍惜每一次的提高与进步。

1.1技术体系的提升

作为一名前端开发,我所在的领域基本上每年都是会有新知识以及各种广度和深度的技术模式的出现,而我们只有保持不断学习的心态和毅力提升和提高,才能适应飞速发展的潮流。比如以下几个技术栈,对于我来说,在2019年得到了提高和应用。

  • react的hook方式的复杂系统应用和实现
  • nginx的环境搭建和部署实践
  • jenkins的环境搭建到部署

1.2 跨部门合作能力的进步

虽然作为程序员,但工作中无可避免需要与人沟通,突破自我提高沟通协作能力,有助于提高工作效率提高产出也是提升自我。所以,我尝试参与工作中上下游等部门的协调协作。在2019年,经过项目中的锻炼,提高了跨部门合作的方式和能力,增强了对于资源、时间共享资源的协调调度,虽然很多地方还不是很完美,但也进步了很多,也获得同事的认可。

二、收获

“种瓜得瓜,种豆得豆”。付出才有收获。经过2019年的努力,我逐步从最初的被动接受,到主动接受挑战,提升自我,获得了同事的好评,同时也就有更多一点机会能够参与更能够发挥自己价值的提升的项目机会。对于程序员来说,努力和收获相符合是格外的欣慰。

收获不仅仅物质上的付出的产出回报,还有领导、同事以及家人给与的精神上的鼓励,这是人生中最大的收获,指引未来的路,对未来更充满信心。

三、成长

成长是一次次的蜕变,虽然痛苦,但才能让你破茧成蝶自由的飞翔。经过2019年的一年的努力,充实的过好每一天,认真对待每一次的努力付出,在一次一次的项目中进行锻炼自我,从中总结,反省不足之处,这就是成长。对于我来说,突破自己程序员的格子衫、木讷不善于交流,勇敢的参与与人沟通的领域,努力提升自己,并从中吸取经验教训,这就是成长。

总之,2019年已成为过去,让那些过去的经历成长都作为宝贵财富,把握现在,憧憬未来,规划好职业方向,程序员的明天也一定会更美好。

希望能够帮助到你~

react hook怎么理解


1. 语言表达、仪表
  序号 题目
  1 简单的谈一下自己。观察应试者的语言是否流畅、有条理、层次分明,讲话的风度如何。
  2 请你告诉我你的一次失败经历。 如果能迅速作答,则应试者反应灵敏,或可能是应试者善于总结教训。
  3 你有什么优点和缺点。 应试者对自己的判断是否中肯,自信、自卑和自傲倾向如何。
  4 请讲述一次让你很感动的经历。 考察应试者是否有感性。
  2. 工作经验
  序号 题目 面试要点参考
  1 你现在或最近所做的工作,其职责是什么? 应试者是否曾关注自己的工作,是否了己工作的重点,表述是否简明扼要。
  2 你认为你在工作中的成就是什么? 了解对方对“成就”的理解,了解对方能力的突出点,是否能客观的总结回顾自我
  3 你以前在日常工作中主要处理些什么问题? 通过对方对自己工作的归纳判断其对业务的熟练程度和关注度。可依此继续追问细节。
  4 以前工作中有过什么良好的建议和计划? 了解对方对工作的改善能力。要追问细节,避免对方随意编造或夸夸其谈。
  3.应聘动机与期望
  序号 题目 面试要点参考
  1 你最喜欢的工作是什么?为什么?请谈谈你在选择工作时都考虑哪些因素?如何看待待遇和工作条件? 同时可判断对方的分析能力和自知力
  2 你为什么选择来我公司工作?你对我公司了解些什么?你为什么应聘这个职位? 只为找到一份工作糊口而盲目求职的培养潜质不高,但对公司的不了解不应成为重点
  3 你对我公司提供的工作有什么希望和要求? 能大胆而客观地提出要求的优先,提出不切实际要求的可不予考虑
  4 你喜欢什么样的领导和同事? 喜欢什么样的人,自己也将最终成为那种人。

vue的hook能将同一功能的代码单独抽成1个方法吗


作者 | 零一 责编 | 张红月
redux的作者是谁?Dan,他的全称叫做Dan Abramov,同时他也是React的核心成员之一
为什么我标题说Dan字节一面挂了呢?
因为昨天晚上字节的web infra团队连线了远在国外的Dan,并且提前收集了200多个网友的问题,从中精选了20几个,让Dan来给一一解答,在其中一个问题的回答中,Dan说他从来没用过Vue,hhhhh,所以有小伙伴就说搞了个段子
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的(what???React核心成员之一竟然没有用过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 团队提供的这次机

reacthook可能使用moudel.css吗


可以。
第一种:在组件中直接使用style。第二种:在组件中引入[name]。css文件。第三种:在组件中引入[name]。scss文件。第四种:在组件中引入[name]。module。css文件。
第五种:在组件中引入[name]。module。scss文件。

2020年前端最火的技术是什么

最火的肯定要数网红直播了,几位一线网红的收入已经和一线明显旗鼓相当了,其次就是区块链了,感觉离普通人太远了,大部分人还没搞懂区块链是什么意思

在前端岗位需要掌握哪些知识

技术方向按照大前端技术架构图进行分层,大体分为:状态管理、UI 组件、小程序、跨平台、框架层、编程语言、工程化、监控、测试和服务端。

状态管理

随着 React、Vue 这类前端框架的流行,组件化开发成为主流,然而随着页面复杂度越来越高,在一个组件文件中,要做 UI 渲染、事件处理、状态管理等等事情,于是一个文件变的越来越复杂。同时,页面组件层级变的复杂后,跨组件间的数据通信也变的很繁琐,需要将数据上提到父节点,通过 property 传输数据、回调方法更新父节点状态等等。

Facebook 首先提出Flux框架,引入单向数据流的编程模式,把 Action 和 Store 从 View 中解耦出去,极大的优化了原有状态管理的架构。

Redux=Flux+Reducer,由于 Store 的唯一性加上 Reducer 纯函数,使得数据状态具有可预测性,于是配套出现了很多基于 TimeMachine 机制的调试工具,极大的提升了研发调试效率。不过由于 Reducer 的纯函数性质,对于一些异步请求的副作用又要引入中间件,导致了一定的复杂度。

Vuex作为 Vue 框架的状态管理的不二选择,核心思想和 Flux/Redux 一脉相承,弱化了 Reducer 的概念而改用 Mutations,使得整套框架更易于理解了。

Mobx是一个非常轻量级的状态管理框架,引入了 observable state、computed value,极大的简化了状态修改的方式,相对于 Redux 减少了不少模板代码,上手迅速使用友好,不过由于缺乏 Redux 这类的强制规范,需要在使用中进行必要约束。

dva是蚂蚁金服出品的数据状态管理框架,dva=React+Redux+Saga,通过约定大大简化了编程体验,值得持续关注。

状态管理不是每个前端应用都必须使用的,要结合自身业务复杂度来决定,只有业务逻辑有一定复杂度需要做到各个模块解耦才考虑采用,如果一个 Todo 都用上 Redux,我怀疑你是在炫技~

UI 组件

在前端三大框架还未一统江湖的时候,组件库百花争鸣有 Dojo、Bootstrap、Extjs 等等。自从 React 横空出世,组件化变成了前端开发的标准模式,同时也应运而生了两大 UI 组件库:基于 React 的 Ant Design 和基于 Vue 的 ElementUI。

作为两大成熟 UI 组件库,如果你的系统是属于中后台业务,对于 UI 定制化要求不那么严格,那么这两个一定是不二选择,两者功能上没有太大区别,基础 UI 控件、多语言、主题配置等等要啥有啥,唯一的风险就是圣诞节给你来个下雪的彩蛋(政府网站高危预警)。

UI 组件库可以持续关注 Web Components,毕竟是 Chrome 浏览器亲生的,背后有 Google 这个老爹撑腰,而且现在 React/Vue 不也变的越来越像 Web Components 了吗?另外前端数据可视化、3D 化也是一个很好方向,一些酷炫的前端库小伙伴们可以撸起来了~

小程序

2019 年小程序百花齐放,各大超级 App 都推出了自己的小程序应用,前端同学们要支持众多小程序,摸摸头发又稀疏了不少吧(em... 离资深研发又迈出了坚实的一步)。小程序的实现有多种方式,需要结合自身的业务场景来做选择。选择一,小程序原生开发方式,以微信为主开发小程序,再通过少量修改移植到其他平台(工作量多少没有做过不好估计,但既然当初支付宝小程序 demo 都抄微信的,感觉应该不大吧~)选择二,H5 内嵌开发方式,天然多平台跨端,但会有些许性能损失,也会有些功能限制,例如微信里面的消息通知不能通过 H5 来推送选择三,mpvue 这类基于某种框架的开发方式,mpvue 就是基于 Vue 框架来开发小程序,对于熟悉 Vue 的同学学习曲线很低,同时也可以实现代码逻辑的复用选择四,Taro 跨多端的实现方式,支持用 React 的开发方式编写一次代码,生成能运行在微信 / 百度 / 支付宝 / 字节跳动 / QQ 小程序、快应用、H5、React Native 等的应用。对于功能需要同时满足多个小程序应用的场景比较适合。

跨平台

锦涛在 Qcon 分享 - 美团移动端动态化实践 中总结了业界和美团在移动端跨平台 & 动态化的实践,可以看到公司在跨平台 & 动态化方面进行了多维度的研究和投入,这样可以适用于不同的业务形态。

自从移动端有了 iOS、Android 两大平台,在加上原有的 H5 Web 端,跨平台就成了这几年大前端最热闹的地方,毕竟一个功能实现三套换谁都不乐意干,于是在用户体验和研发体验中的一场拉锯战就开始了,各大厂商各显神通。

最早出现的是 Phonegap 这类基于 WebView 的实现方式,由于 WebView 天然跨平台能力很好的解决了展示层的问题,然后通过 jsBridge 打通 WebView 和 Native 之间通信,使得浏览器中的 H5 代码也能有原生能力。这种方式研发体验最好,但是用户体验最差。

然后就是 React Native、Weex、Picasso,它们基于 Virtual Dom 或者模板语言,通过 js 代码编写 UI,然后渲染成原生组件,完美了实现了用户体验和研发体验的平衡。但要用好这些框架还是需要对性能优化、差异性抹平、工程化有比较高的要求,小团队小公司慎用,否则入坑容易出坑难。

今年大热是 Flutter,可以持续关注,技术架构很优秀,野心很庞大,大有一统江湖的气势。

跨平台热热闹闹多年,我个人认为当前的解决方案都是折中方案,随着手机性能逐步优化、浏览器原生能力的增强,也许大家都会回归本源,走上 H5 这条道路。

框架层

上半年框架层没有太大变化,依旧三大前端框架把持:React,Vue,Angular。从团队使用情况来看,React、Vue 依旧是主流,Angular 似乎慢慢不那么受待见,也许太难学了吧 (手动捂脸)

React 16.x 上半年发布,推出了不少新特性,例如 hooks、lazy、suspense 等等,如果是 React 技术栈的同学鼓励第一时间进行尝试。hooks 还需要再多多实践,整体实现理念和原有 class 方式有很大不同,习惯了原有的生命周期的写法的同学还需要适应。

Vue 3.x 难产至今,根据路线图 3.0 会有大量的更新,比如 virtual dom 的重写、框架会更小更快、全面拥抱 Type、使用 Proxy 来实现检测机制等等。呼唤尤大大赶紧更新,Vue 的同学恨的牙痒痒的,下半年的 KPI 就指望这个啦~

Angular 近期没有太多关注,不过 Angular 是一个真正意义的 MVVM 框架,不比 React 或者 Vue 其实都是 View 框架,所以这是一个大而全的框架。但是团队方面期望技术栈进行收敛,所以这方面就没有太多的投入了。