持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
vue使用者
本人是vue重度使用者,主要是之前在职的公司技术栈都是vue,而且我的学习理念是不想为了学习而学习,更希望有一个具体的完成目标,然后在过程中学习那些技术。然而vue跟react无论是业务还是其他场景,都重合在一起,不想特意去再学一个锤子,然后公司也是没有使用react的机会,所以当时基本都没怎么写过jsx,不过一些hooks和react特性都了解。
react
这个月换了份新工作,是全新的技术栈和业务,其中就有react,也写了一个版本的需求,主要谈一下这两周写react的感受,和vue的一些对比。
jsx
点开.jsx文件映入眼帘的是一堆html标签,在这里,html标签就和其他一个普通类型一样,你可以放到变量里面,可以跟函数组合成hoc高阶组件,可以当成组件的props传进去,也可以直接放到组件标签之间,然后父组件通过children拿到子组件。积木感很强,而且也很直观。
哈哈哈,不过允许你会犯一些小错误,就像我在jsx里面直接运行函数,导致组件无限渲染
// HHH,vue的模板写习惯了
<div onClick="fn(arg)"></div>
所以我的评价是:
- jsx:js里面扩展html标签能力
- vue模板:html标签里面扩展js能力
hooks
自己也浅浅的写了第一个hooks,这家伙比面向对象优势的一个地方是:函数式通过参数映射行为,而面向对象是数据与行为的模板交织在一起,而hooks则可以拆开这两部份,使行为更具复用性。
但是有一个心智负担,就是hooks不能放到if、for之类的地方,这是因为react内部的hooks顺序是一一对应的,具体我这里就不展开说了。不能像普通的函数那样,随意使用。
上手难度
主要你用过vue,并且js基本功不错,转react是非常容易的,正如网上很多人那样说的,会js,基本就会react,再加上你会vue的前提,很多概念已经是十分熟悉,只需要配合文档食用,就可以直接冲。