React 积累

1. Fragment 标签

使用介绍:因React要求每个组件都需要一个大的外层包裹起来才可以,否则报错,如果你并不想组件外层由一个大大外层包裹,则可以使用Fragment 标签

代码示例:

import React, { Component, Fragment } from "react";

class Xiao extends Component {
  render() {
    return (
      <Fragment>
        <ul>
          <li>头部按摩</li>
          <li>精油推背</li>
        </ul>
      </Fragment>
    )
  }
}

export default Xiao

 

2. dangerouslySetInnerHTML={{ __html: e }}  e可为(html标签,字符串, 数字,布尔)

// 将html标签放入
const html = "<h1>html识别</h1>"

// 之所以是有2个{{}},是因为第一{}代表jsx语法开始,第二个是代表dangerouslySetInnerHTML接收的是一个对象键值对 <div dangerouslySetInnerHTML={{ __html: html }}></div>

  

3. lable 标签

点击lable,可以激活input文本框

<label htmlFor="hhh">加入服务:</label>
<input id="hhh" className="input" placeholder="请输入服务" />

  

4.父组件传子组件

父组件
import XiaojiejieItem from './xiaojiejieItem' class Xiaojiejie extends Component { constructor() { super() this.state = { inputVal: '你好' } } delService() { this.setState({ inputVal: '哈哈' }) } render() { return ( <XiaojiejieItem content={inputVal} delService={this.delService.bind(this)} /> ) } }
子组件
import React, { Component } from 'react'; // imrc

class xiaojiejieItem extends Component { // cc
  constructor(props) {
    super(props)
  }

  handleclick() {
    this.props.delService('哈喽')
  }

  render() {
    return (
      <div>{this.props.content}</div>
    );
  }
}

export default xiaojiejieItem;

  

5. propsTypes校验 (在父组件向子组件传递数据时,使用了属性的方式,也就是props,但我们需要校验,校验数据的类型)

import React, { Component } from 'react'; // imrc
import PropType from 'prop-types';

class xiaojiejieItem extends Component { // cc
  constructor(props) {
    super(props)
    this.handleclick = this.handleclick.bind(this)
  }

  handleclick() {
    this.props.delService(this.props.index)
  }

  render() {
    return (
      <div onClick={this.handleclick}>{this.props.content}</div>
    );
  }
}

xiaojiejieItem.propTypes = {
  content: PropType.string,
  delService: PropType.func,
  index: PropType.number,
 avname: PropType.string.isRequired //确保avname是否存在,如否则报错
}
export default xiaojiejieItem;

 

6. defaultProps 设置props默认值

import React, { Component } from 'react'; // imrc
import PropType from 'prop-types';

class xiaojiejieItem extends Component { // cc
  constructor(props) {
    super(props)
    this.handleclick = this.handleclick.bind(this)
  }

  handleclick() {
    this.props.delService(this.props.index)
  }

  render() {
    return (
      <div onClick={this.handleclick}>{this.props.content}</div>
    );
  }
}

xiaojiejieItem.propTypes = {
  content: PropType.string,
  delService: PropType.func,
  index: PropType.number,
 avname: PropType.string.isRequired //确保avname是否存在,如否则报错
}
// 默认设置值,如父级未传avname,则可给一个默认值 xiaojiejieItem.defaultProps = {   avname: '松岛枫' }
export default xiaojiejieItem;

 

7. shouldComponentUpdate(组件发生改变前执行

当在input框中输入value的时候,render函数,componentDidUpdate函数会频繁执行,在性能方面,不推荐此操作,shouldComponentUpdate可帮助我们避免

尝试~感觉没什么效果 

 

8. CSSTransition,TransitionGroup动画

 

posted @ 2019-12-16 18:57  小短腿奔跑吧  阅读(157)  评论(0编辑  收藏  举报