10-2、登录鉴权操作及高阶函数的意义

渲染判断鉴权(鉴权登录)
开发中可能遇到的场景:

  • 某些页面必须用户登录成功后才能进入查看(例如:购物车、个人中心、付款页面等),如果用户没有登录成功,则直接跳转到登录页面。
    在这里插入图片描述
    在这里插入图片描述
    高阶函数的意义:
  1. 利用高阶组件可以针对某些React代码进行更加优雅的处理
  2. 早起的React有提供组件之间的一种复用方式mixin,目前已不再建议使用
    • Mixin可能会相互依赖,相互耦合,不利于代码维护
    • 不同的mixin中的方法可能会相互冲突
    • mixin非常多时,组件时可以感知到的,甚至还要为其做相关处理,这样会给代码啊造成滚雪球的复杂性
  3. HOC也有自己的一些缺陷
    • HOC需要在原组件上进行包裹或者嵌套,如果大量使用HOC,将会产生非常多的嵌套,这让调试变得非常困难
    • HOC可以劫持props,在不遵守约定的情况下也可能造成冲突

ref的转发:

  1. ref不能应用于函数式组件(因为函数式组件没有实例,所以不能获得到对应的组件对象)
  2. 在开发中想要获取函数式组件中某个元素的DOM,可以采用forwardRef高阶函数【直接传入ref属性(错误方法)】
    在这里插入图片描述
    Portals
  3. 某些情况下希望渲染的内容独立于父组件,甚至独立于当前挂载的DOM元素中(默认挂载到id为root的DOM元素上)
  4. 提供了一种将子节点渲染到存在于父组件以外的DOM节点的优秀方案
    • 第一个参数(child)是任何可渲染的React子元素,例如一个元素、字符串或者fragmenr
    • 第二个参数(container)是一个DOM元素
      在这里插入图片描述
      当从组件的render方法返回一个元素时,该元素将被花在到DOM节点中最近的父节点上,然而有时候将子元素插入到DOM节点中的不同位置也有好处的
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值