React-Fragnant和React-Strict

简介: React-Fragnant和React-Strict

1.Fragment:

  • 由于React规定, 组件中只能有一个根元素
    所以每次编写组件的时候, 我们都需要在最外层包裹一个冗余的标签
  • 如果不想渲染这个冗余的标签, 那么就可以使用Fragment来代替
    https://zh-hans.reactjs.org/docs/fragments.html
    如果组件的结构比较复杂, 那么只能有一个根元素
    可以使用 <React.Fragment>或者他的语法糖<>

<React.Fragment>
                <p>{this.state.heroList[0]}</p>
                <p>{this.state.heroList[1]}</p>
                <p>{this.state.heroList[2]}</p>
            </React.Fragment>

如果需要给Fragment添加key, 那么就不能使用语法糖

return (
                            <React.Fragment key={name}>
                              <p >{name}</p>
                            </React.Fragment>
                        )

class Home extends React.PureComponent{
    constructor(props){
        super(props);
        this.state = {
            heroList: ['鲁班', '虞姬', '黄忠']
        }
    }
    render() {
        // 如果组件的结构比较复杂, 那么只能有一个根元素
        return {
                {
                    this.state.heroList.map(name=>{
                        return (
                            <React.Fragment key={name}>
                              <p >{name}</p>
                            </React.Fragment>
                        )
                    })
                }
            </>
        )
    }
}
class App extends React.PureComponent{
    constructor(props){
        super(props);
    }
    render(){
        return (
            /*
            <React.Fragment id={'app'}>
                <Home/>
            </React.Fragment>
             */
            // 下面的这种写法就是上面写法的语法糖
            <>
                <Home/>
            </>
        )
    }
}
export default App;

<React.Strict>开启严格模式会检查过时的表达和不符合规范的操作


33.png

image.png

import React from 'react';
class App extends React.PureComponent{
    constructor(props){
        super(props);
        console.log('constructor');
    }
    render(){
        return (
            <div id={'app'}>
                <p ref={'myRef'}>我是段落</p>
                <button onClick={()=>{this.btnClick()}}>按钮</button>
            </div>
        )
    }
    btnClick(){
        console.log(this.refs.myRef);
    }
}
export default App;



目录
相关文章
|
7天前
|
JavaScript 前端开发 算法
React介绍
React介绍
15 0
|
7天前
|
存储 前端开发 JavaScript
对于React的了解与认识
对于React的了解与认识
|
6月前
|
前端开发 JavaScript 容器
React Portals
React Portals
60 0
|
8月前
|
XML 前端开发 JavaScript
React | React的JSX语法(一)
React | React的JSX语法 React | React的JSX语法(一)
|
8月前
|
存储 前端开发 JavaScript
React | React的JSX语法(二)
React | React的JSX语法(二)
React | React的JSX语法(二)
|
10月前
|
前端开发 JavaScript 数据可视化
react的应用
react的应用
71 1
|
缓存 前端开发 JavaScript
React哲学思想
React是用JavaScript构建快速响应的大型Web应用程序的首选方式。由于前端我们是无法改变加载的网速,但是我们可以通过加入view界面提示加载,这样在响应的过程中不会让用户一直处于空白界面的状态。可以调用React中Lazy&Suspence来实现。如果项目崩溃或者网络崩溃的时候,可以使用ErrorBondary,展示出自己定义渲染的“错误”的UI界面
5277 1
|
前端开发 调度
一篇必看的React文章
本文适合有 React 基础的小伙伴进阶学习
一篇必看的React文章
|
资源调度 前端开发 JavaScript
React 的 what,why 和 how
React 是一个用于构建用户界面的JavaScript 库。 用户界面:HTML 页面(前端) React 主要用来写 HTML 页面,或构建 Web 应用。 如果从 MVC 的角度来看,React 仅仅是视图层(V),也就是只负责视图的渲染,而并非提供了完整的 M 和 C 的功能。
77 0
|
前端开发 JavaScript 算法
react知识总结
react知识总结

热门文章

最新文章