终于上手React

前言

种一棵树最好的时间是十年前,其次是现在
react列入学习计划已经很久了,直至前段时间,认识程度还仅仅在于官方文档的基础教程,最近终于上手了。。。项目预览:蓝搜

我上手的第一个mvvm框架是vue,再回来看react确实有点费劲,关于redux的操作也折腾了挺久,脑海里对于前端的“状态管理”这四个字有点局限于vuex的操作模式,导致项目使用redux的时候脑子会有时转不过弯来。

说说我这个项目把,项目最开始是用来练习webpack配置的,后来干脆就加入了react,直接脱离官方脚手架来搞一个项目试手,UI也是直接选的antdesign。最开始是想做一个聚合搜索,后来写着写着把这“聚合”两个关键词给忘了,做成了一个iframe多开器,但是目前有很多网站禁止了iframe访问,所以实用型并不是很强。但写这个项目的最终目的还是为了上手react,对react有更多对认识。

react初步认识

react是手动档 vue是自动挡

  • 社区里经常看到的一句话,现在算是有所体会了。react组件的state改变需要使用setState去操作,vue直接修改对象属性,简直太方便了。

  • vue好像没有提过容器组件展示组件的概念,但是在后来的开发过程中也有前辈提示过,“你应该把纯粹用来展示的组件和有数据交互的组件给分离出来”。

  • redux的状态管理也是单一数据源,默认没有像vuex提供的module的概念,但是好像可以借助dva。

  • redux分发state和reducer可以用connect操作,但是需要嵌套组件使用,开发过程中看了别人写的项目,发现可以用@connect装饰器来操作,这个就方便多了,也学着引入了项目,方便程度大概跟vuex提供的的mapMuation和mapAction差不多把。

    1
    2
    3
    4
    5
    6
    @connect(
    // 需要的state参数
    state => ({ menus: state.menus }),
    // 自动dispatch的action创建函数
    { addFrame }
    )
  • JSX写法就是官方提供的语法糖,头部还是需要单独引入react的。JSX相对vue的模板语法感觉灵活性更高一点。

  • 书写整洁度的话,就目前我写的这个项目来看,感觉是没有vue写出来好看,大概是没掌握到精髓吧。

后续计划

目前项目形态还比较简单,只引入了redux,而且还停留在需要看文档开发阶段,不算熟练掌握…后面打算引入react-router,再看看能不能加入dva,继续加油

评论

css
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×