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动画
React 积累的更多相关文章
- react 组件积累
material-ui material-table ant-design https://ant.design/docs/react/getting-started-cn 定义组件(注意,组件的名称 ...
- React native 平时积累笔记
常用插件: react-native-check-box 复选框react-native-sortable-listview 列表拖拽排序 react-native-doc-viewer 预览组件 r ...
- 初探React,将我们的View标签化
前言 我之前喜欢玩一款游戏:全民飞机大战,而且有点痴迷其中,如果你想站在游戏的第一阶梯,便需要不断的练技术练装备,但是腾讯的游戏一般而言是有点恶心的,他会不断的出新飞机.新装备.新宠物,所以,很多时候 ...
- 腾讯优测优分享 | 探索react native首屏渲染最佳实践
腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~ 此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app ...
- 颠覆式前端UI开发框架:React
转自:http://www.infoq.com/cn/articles/subversion-front-end-ui-development-framework-react/ 基于HTML的前端界面 ...
- 探索react native首屏渲染最佳实践
文 / 腾讯 龚麒 0.前言 react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react n ...
- 一个react的完整项目展示
和一些人的关系像平行线,一辈子相守相望,见于眼底藏于心间.就怕耐不住寂寞,冲动而成了相交线,在一个点尽情拥抱,从此便离得越来越远,再也不见.遇到这样的人,因为不想做恋人只能一时,所以才选择做朋友能一世 ...
- React Native 可以走多远?
对于大多数APP开发者来说,能够同时开发出Android APP和IOS APP是不是很牛逼,可是它也不是天方夜谭,自从有了一个叫React Native的东西的出现,这一切就变得可以实现了. 那么到 ...
- 【翻译】React vs Angular: JavaScript的双向性
翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...
随机推荐
- MobaXterm的安装和使用
MobaXterm的安装和使用 安装 1 下载网址:https://mobaxterm.mobatek.net/,选择“Download”,选择免费版的下载. 2 解压压缩包,双击exe文件安装软件, ...
- 「福利」Java Swing 编写的可视化算法工程,包含树、图和排序
之前在整理<学习排序算法,结合这个方法太容易理解了>这篇文章时,发现了一个用 Java Swing 编写的可视化算法工程,真心不错!包含了常用数据结构和算法的动态演示,先来张图感受下: 可 ...
- WPF 精修篇 长时间线程加取消功能
原文:WPF 精修篇 长时间线程加取消功能 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11*&qu ...
- 经典SQL语句使用方法大全(自留用)
一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份 ...
- 浅聊几种主流Docker网络的实现原理
原文:https://mp.weixin.qq.com/s/Jdxct8qHrBUtkUq-hnxSRw 参考:https://blog.csdn.net/yarntime/article/detai ...
- 【转载】Gradle学习 第三章:教程
转载地址:http://ask.android-studio.org/?/article/15 3.1. Getting Started 入门The following tutorials intro ...
- 《Android开发艺术探索》读书笔记之Activity的生命周期
两种不同情况下的Activity生命周期 (1)典型情况下的生命周期 指在有用户参与的情况下,Activity所经过的生命周期的改变. (2)异常情况下的生命周期 指Activity被系统回收或者由于 ...
- 完整的房间类游戏解决方案AiJ
介绍 AiJ是一套完整的房间类游戏解决方案,支持无限水平扩展来满足更大的人数承载,并且提供了良好的调试接口. 主要模块包括: 注册中心 大厅服务 游戏服务 亲友圈服务 运营管理系统 CocosCrea ...
- XGBoost 引入 - 提升树
认识提升树 这个boosting 跟 Adaboost 不同. Adaboost 是通过上一轮的误差率来动态给定一下轮样本不同的权重来学习不同的模型. 现在的方式, 更多是基于残差 的方式来训练. 一 ...
- scrapy设置logger日志
1.在settings中设置log级别,在settings.py中添加一行: LOG_LEVEL = 'WARNING' Scrapy提供5层logging级别: CRITICAL - 严重错误 ER ...