React项目插件总结(1)

react-document-title

  1. 根据路由动态设置页面的title
  2. 安装
    npm install react-document-title
  3. 使用
import DocumentTitle from "react-document-title"
import { withRouter } from "react-router-dom";

class Main extends React.Component {
	
  getPageTitle = () => {
  	// 可根据相关需求自动编写关于title的逻辑函数  必须有返回值
    return 'route'
  }
  render() {
    const { pathname } = this.props.location
    return (
      <DocumentTitle title={this.getPageTitle()}> 
        <div>DocumentTitle</div>
      </DocumentTitle>
    )
  }
}

export default withRouter(Main)

react-transition-group

  1. react复杂动画过渡 插件
  2. 官方文档: https://reactcommunity.org/react-transition-group/
  3. 安装
    npm install react-transition-group
  4. 组件说明
  • transition
参数说明
children子元素
nodeRef对需要转换的 DOM 元素的 React 引用
in是否显示组件显示组件 触发进入或退出状态
enter启用或禁用输入转换。
exit启用或禁用退出转换
timeout转换所花费得时间
addEndListener自定义过渡结束触发器
onEnter应用进入之前得回调
onEntering应用“进入”状态时触发的回调
onEntered应用“进入”状态后触发的回调
onExit在应用“退出”状态之前触发回调
onEntering应用“退出”状态时触发的回调
onEntered应用“退出”状态后触发的回调
import { Transition } from 'react-transition-group';

const duration = 300;

const defaultStyle = {
  transition: `opacity ${duration}ms ease-in-out`,
  opacity: 0,
}

const transitionStyles = {
  entering: { opacity: 1 },
  entered:  { opacity: 1 },
  exiting:  { opacity: 0 },
  exited:  { opacity: 0 },
};

const Fade = ({ in: inProp }) => (
  <Transition in={inProp} timeout={duration}>
    {state => (
      <div style={{
        ...defaultStyle,
        ...transitionStyles[state]
      }}>
        I'm a fade Transition!
      </div>
    )}
  </Transition>
);
  • CSSTransition
参数说明
classNames在组件出现、进入、退出或完成转换时应用于组件的动画 classNames
children子元素
nodeRef对需要转换的 DOM 元素的 React 引用
in是否显示组件显示组件 触发进入或退出状态
enter启用或禁用输入转换。
exit启用或禁用退出转换
timeout转换所花费得时间
addEndListener自定义过渡结束触发器
onEnter应用进入之前得回调
onEntering应用“进入”状态时触发的回调
onEntered应用“进入”状态后触发的回调
onExit在应用“退出”状态之前触发回调
onEntering应用“退出”状态时触发的回调
onEntered应用“退出”状态后触发的回调
// 例如:classNames="fade" 可使用
fade-appear, fade-appear-active,fade-appear-done
fade-enter, fade-enter-active,fade-enter-done
fade-exit, fade-exit-active,fade-exit-done
function App() {
  const [inProp, setInProp] = useState(false);
  return (
    <div>
      <CSSTransition in={inProp} timeout={200} classNames="my-node">
        <div>
          {"I'll receive my-node-* classes"}
        </div>
      </CSSTransition>
    </div>
  );
}

.my-node-enter {
  opacity: 0;
}
.my-node-enter-active {
  opacity: 1;
  transition: opacity 200ms;
}
.my-node-exit {
  opacity: 1;
}
.my-node-exit-active {
  opacity: 0;
  transition: opacity 200ms;
}
  • SwitchTransition
参数说明
mode过渡模式 out-in :当前元素先转出,然后当完成时,新元素转入 in-out :新元素首先转入,然后当完成时,当前元素转出。
children任何Transition或CSSTransition组件
  • TransitionGroup
<TransitionGroup>
	<CSSTransition
		key={pathname}
		timeout={500}
		classNames="fade"
		exit={false}
	>
	 <div>111</div>  
	</CSSTransition>
</TransitionGroup>

react-loadable

  1. 动态加载导入的组件 高阶组件
  2. https://www.npmjs.com/package/react-loadable
  3. yarn add react-loadable
import Loadable from 'react-loadable'

Loadable({
   loader: () => import('../pages/dashboard/dashboard'),
   loading: Loading,
 })
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值