react笔记


官方文档

  1. react

1. react:dangerouslySetInnerHTML

设置目标标签的innerHTML属性,通过此方法传入的数据,不会被转译。也就是说,若数据中含有html标签,则会在页面显示出来,而不是含有标签的字符串。

<content dangerouslySetInnerHTML={{__html: '<div style="color:red">asd</div>'}}/>

2. react-router-dom:动态路由

http://192.168.1.102:3000/detail/id=a

<Route path='/detail/id=:id' exact component={Pages.Detail}></Route>
class Detail extends Component {
	constructor(props) {
		super(props);
        console.info(this.props.match.params.id);	// a
	}
}

http://192.168.1.102:3000/detail?id=a

<Route path='/detail' exact component={Pages.Detail}></Route>
class Detail extends Component {
	constructor(props) {
		super(props);
        console.info(this.props.location.search);	// ?id=a
	}
}

3. styled-components:[Deprecated] innerRef

innerRef:styled-components官方文档
ref可以直接获得由styled-components创建的标签,innerRef已经被放弃。

// ./style.js
import styled from 'styled-components';
export const Input = styled.input`
	// ······
`;
// ./App.js
import Input from './style.js';
class Essay extends PureComponent {
	render() {
		return <Input ref={(e)=>{this.input=e}}/>
	}
}

4. react-router-dom:重定向

import { Redirect } from "react-router-dom";
class Detail extends PureComponent {
    render() {
        return <Redirect to='/' />
    }
}

5. react-router-dom:withRouter

若当前组件无法通过props获取路由信息时,使用withRoute可以获得路由的所有参数。

import { withRouter } from 'react-router-dom';
class Detail extends PureComponent {
	render() {
        console.info(this.props.match.params.id);
		return ()
	}
}
export default withRouter(Detail)

6. react-loadable:异步加载组件

react默认一次性缓存所有组件文件,这样会使得首页加载缓慢。使用react-loadable,当需要加载某个组件时,才会获取组件文件。

// ./Home/loadable.js
import React from "react";
import Loadable from 'react-loadable';

const LoadableComponent = Loadable({
    loader: () => import('./index.js'),
    loading() {
        return <div>正在加载</div>
    }
});
export default () => <LoadableComponent/>
// ./index.js
// import { Home } from './Home/index.js';
import { Home } from './Home/loadable.js';

7. react:Component 和 PureComponent

React.PureComponentReact.Component很相似。两者的区别在于React.Component并未实现shouldComponentUpdate(),而React.PureComponent中以浅层对比propstate的方式来实现了该函数。
React.PureComponent中的shouldComponentUpdate()仅作对象的浅层比较。如果对象中包含复杂的数据结构,则有可能因为无法检查深层的差别,产生错误的比对结果。仅在你的propsstate较为简单时,才使用React.PureComponent,或者在深层数据结构发生变化时调用 forceUpdate()来确保组件被正确地更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值