P07:组件外层包裹原则Fragment 标签的应用

Posted wgchen~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P07:组件外层包裹原则Fragment 标签的应用相关的知识,希望对你有一定的参考价值。

阐述

通过上面六节的学习,已经对React有了基本的认识。

最好的学习就是在实战中的成长了,我们开始以作一个《服务菜单》的应用,练习以前所学的知识和学习新知识。

当然本教程不是教大家作CSS的,所以我就不进行样式布局了。

新建服务组件

现在 src 的目录下面,新建一个文件 Beauty.js 文件,然后写一个基本的html结构。

代码如下:

import React,Component from 'react'

class Beauty extends Component
    render()
        return (
            <div>
                <div><input /> <button>增加服务</button></div>
                <ul>
                    <li>头部按摩</li>
                    <li>精油推背</li>
                </ul>
            </div>
        )
    


export default Beauty

这个文件现在还没有什么功能,只是写完了一个小组件。
然后我们把入口文件的 <App /> 组件换成 Beauty 组件。

组件外层包裹原则

这是一个很重要的原则,比如上面的代码,我们去掉最外层的<div>,就会报错,因为React要求必须在一个组件的最外层进行包裹。

错误代码(因为外边少了最外层的包裹):

import React,Component from 'react'

class Beauty extends Component
    render()
        return  (
               <div><input /> <button> 增加服务 </button></div>
               <ul>
                   <li>头部按摩</li>
                   <li>精油推背</li>
               </ul> 
        )
    

export default Beauty

所以我们在写一个组件的时候,组件的最外层都需要有一个包裹。

Fragment 标签讲解

加上最外层的 DIV,组件就是完全正常的,但是你的布局就偏不需要这个最外层的标签怎么办?

比如我们在作Flex布局的时候,外层还真的不能有包裹元素。

这种矛盾其实React16已经有所考虑了,为我们准备了标签。

要想使用,需要先进行引入。

import React,Component,Fragment  from 'react'

然后把最外层的<div>标签,换成<Fragment>标签,代码如下。

这时候你再去浏览器的Elements中查看,就回发现已经没有外层的包裹了。


以上是关于P07:组件外层包裹原则Fragment 标签的应用的主要内容,如果未能解决你的问题,请参考以下文章

react之Fragment

[react] 为什么建议Fragment包裹元素?它的简写是什么?

React中的fragment和StrictMode

带有自定义组件的角包裹角材料标签组件

P07:通过Input体验Redux的流程

P07:博客列表页&底部制作