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动画

React 积累的更多相关文章

  1. react 组件积累

    material-ui material-table ant-design https://ant.design/docs/react/getting-started-cn 定义组件(注意,组件的名称 ...

  2. React native 平时积累笔记

    常用插件: react-native-check-box 复选框react-native-sortable-listview 列表拖拽排序 react-native-doc-viewer 预览组件 r ...

  3. 初探React,将我们的View标签化

    前言 我之前喜欢玩一款游戏:全民飞机大战,而且有点痴迷其中,如果你想站在游戏的第一阶梯,便需要不断的练技术练装备,但是腾讯的游戏一般而言是有点恶心的,他会不断的出新飞机.新装备.新宠物,所以,很多时候 ...

  4. 腾讯优测优分享 | 探索react native首屏渲染最佳实践

    腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~ 此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app ...

  5. 颠覆式前端UI开发框架:React

    转自:http://www.infoq.com/cn/articles/subversion-front-end-ui-development-framework-react/ 基于HTML的前端界面 ...

  6. 探索react native首屏渲染最佳实践

    文 / 腾讯 龚麒 0.前言 react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react n ...

  7. 一个react的完整项目展示

    和一些人的关系像平行线,一辈子相守相望,见于眼底藏于心间.就怕耐不住寂寞,冲动而成了相交线,在一个点尽情拥抱,从此便离得越来越远,再也不见.遇到这样的人,因为不想做恋人只能一时,所以才选择做朋友能一世 ...

  8. React Native 可以走多远?

    对于大多数APP开发者来说,能够同时开发出Android APP和IOS APP是不是很牛逼,可是它也不是天方夜谭,自从有了一个叫React Native的东西的出现,这一切就变得可以实现了. 那么到 ...

  9. 【翻译】React vs Angular: JavaScript的双向性

    翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...

随机推荐

  1. Git更改文件名大小写,提交失败问题解决

    背景:某java文件大小写写错了,一直提交不上去 例如我只是将updatePrivacySettingsTest.java变更为UpdatePrivacySettingsTest.java,但是add ...

  2. c# 类实例序列化反序列化json文件 (原发布 csdn 2017-10-01 20:02:12)

    前言 前段时间使用了net.json保存对象数据.添加完成后,测试发现300多实例数据保存加载json文件,速度比原方式(BinaryFormatter)慢.但是功能加上后也懒再删掉代码了,索性就采用 ...

  3. 为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

    原因: 数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变. 解决方案: 原理就是先把数组 ...

  4. C# 生成二维码(QR Code)

    参考:   C#通过ThoughtWorks.QRCode生成二维码(QR Code)   通过ThoughtWorks.QRCode(ThoughtWorks.QRCode.dll)来实现 1)   ...

  5. Exif认识(二)

    通过php获取exif信息后,像光圈和快门的值还需要转换下,才是我们常用看得懂的值 ApertureValue的值: 拍照时镜头的光圈. 单位是 APEX. 为了转换成普通的 F-number(F-s ...

  6. python神操作将list拉平

    python 神操作   将list 拉平 list_of_lists = [[1], [2, 3], [4, 5, 6]]sum(list_of_lists, [])

  7. Winform中实现根据配置文件重新加载ZedGraph属性的实现思路

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  8. 在centos下安装rar解压.rar压缩包

    CentOS本身不自带rar环境,因此对于rar文件无法直接解压,需要先配置rar环境. 首先需要确定自己的系统是64位还是32位的,通过这个命令: [root@localhost]# uname - ...

  9. weblogic漏洞

    1 weblogic控制台地址暴露 ²  整改方法: 禁用weblogic控制台.在weblogic域(sguap-domain和base-domain)的config下的config.xml中 &l ...

  10. 浅谈华为验厂对MES系统的要求

    众所周知,华为对供应商在管理.防错.品控.追溯等方面的要求都非常严格.在华为验厂时,对供应商的信息系统,尤其是MES系统的评估也是有非常具体的要求.那么我们今天就来谈谈华为验厂时,对MES系统有哪些具 ...