最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

React中组件定义使用详解

来源:动视网 责编:小采 时间:2020-11-27 19:46:56
文档

React中组件定义使用详解

React中组件定义使用详解:这次给大家带来React中组件定义使用详解,React中组件定义使用的注意事项有哪些,下面就是实战案例,一起来看一下。组件组件使你可以将 UI 划分为一个一个独立,可复用的小部件,并可以对每个部件进行单独的设计。在单页面应用(SPA)中扮演着重要角色组件简单
推荐度:
导读React中组件定义使用详解:这次给大家带来React中组件定义使用详解,React中组件定义使用的注意事项有哪些,下面就是实战案例,一起来看一下。组件组件使你可以将 UI 划分为一个一个独立,可复用的小部件,并可以对每个部件进行单独的设计。在单页面应用(SPA)中扮演着重要角色组件简单


这次给大家带来React中组件定义使用详解,React中组件定义使用的注意事项有哪些,下面就是实战案例,一起来看一下。

组件

组件使你可以将 UI 划分为一个一个独立,可复用的小部件,并可以对每个部件进行单独的设计。

在单页面应用(SPA)中扮演着重要角色

组件简单实现 —— 函数式组件

import React from 'react'
import ReactDOM from 'react-dom'
let Component1 = () => {
 return <h1>React Component</h1>
}
ReactDOM.render(
 <Component1 />,
 document.getElementById('app')
)

类组件 —— ES5 语法

var React = require('react');
var ReactDOM = require('react-dom')
var Component1 = React.createClass({
 render: function(){
 return (
 <p>
 <h1>Tom</h1>
 <h1>Sam</h1>
 </p>
 )
 }
})
ReactDOM.render(
 <Component1 />,
 document.getElementById('app')
)

类组件 —— ES6 语法

import React from 'react'
import ReactDOM from 'react-dom'
class Component1 extends React.Component{
 render(){
 return (
 <p>
 <h1>Tom</h1>
 <h1>Sam</h1>
 </p>
 ) 
 }
}
ReactDOM.render(
 <Component1 />,
 document.getElementById('app')
)

效果预览

组件小结

  • 组件名首字母必须为大写

  • 函数返回一个虚拟 DOM 节点

  • 类组件必须要有 render 方法

  • render 必须返回一个虚拟 DOM 节点

  • 实际工作中,类组件是常用的方式

  • 组件属性(Props)

    因为组件的调用是 html 标签的形式,而 html 标签是可以添加属性,所以在 React 的组件当中也是可以添加自定义的属性,而属性的获取则用 this.props

    函数式组件

    import React from 'react'
    import ReactDOM from 'react-dom'
    let Component1 = (props) => {
     return <h1>name-{props.name}</h1>
    }
    ReactDOM.render(
     <Component1 name="Sam"/>,
     document.getElementById('app')
    )

    类组件

    import React from 'react'
    import ReactDOM from 'react-dom'
    class Component1 extends React.Component{
     render(){
     return <h1>name-{this.props.name}</h1> 
     }
    }
    ReactDOM.render(
     <Component1 name="Sam"/>,
     document.getElementById('app')
    )

    默认属性(DefaultProps)

    组件的属性除了可以通过调用的时候以 DOM 节点属性的方式传值,也可以设置默认的属性值,如果调用的时候没有传对应的属性值,则会用默认的属性值。
    getDefalutProps 这个方法只会被调用一次。

    //es5
    var React = require('react');
    var ReactDOM = require('react-dom');
    var Component1 = React.createClass({
     getDefaultProps: function(){
     return {
     name: 'Tom',
     age: 20
     }
     },
     render: function(){
     return (
     <p>
     <p>姓名:{this.props.name}</p>
     <p>年龄:{this.props.age}</p>
     </p>
     ) 
     } 
    })
    //es6
    import React from 'react';
    import ReactDOM from 'react-dom';
    class Component1 extends React.Component{
     static defaultProps = {
     name: 'Tom',
     age: 20
     }
     render(){
     return (
     <p>
     <h1>姓名:{this.props.name}</h1>
     <h1>年龄:{this.props.age}</h1>
     </p>
     )
     }
    }
    //或者
    Component1.defaultProps = {
     name: "Sam",
     age: 22
    }
    //使用
    ReactDOM.render(<Component1/>, document.getElementById('p1'));

    属性的类型规则(propTypes)

    通常情况下,在定义一个组件的时候把属性定义好,会加上一些使用的条件限制,比如某些属性值的数据类型必须是数组,或者某些属性不能为空,在这个时候,可以通过 propTypes 来设置。

    import React from 'react';
    import ReactDOM from 'react-dom';
    import PropTypes from 'prop-types'
    class Component1 extends React.Component{
     render(){
     return (
     <p>
     <p>姓名:{this.props.name}</p>
     <p>年龄:{this.props.age}</p>
     <p>学科:</p>
     <ul>
     {
     this.props.subjects.map(function(_item){
     return <li>{_item}</li>
     })
     }
     </ul>
     </p>
     )
     }
    }
    //定义属性 name 为字符串且必须有值
    Component1.propTypes = {
     name: PropTypes.string
    }
    ReactDOM.render(<Component1 name="Tom"/>, document.getElementById('p1'));

    prop 默认情况下是可选,常用的类型:

  • PropTypes.array

  • PropTypes.bool

  • PropTypes.func

  • PropTypes.number

  • PropTypes.object

  • PropTypes.string

  • PropTypes.symbol

  • PropTypes.any.isRequired

  • 组件

    组件使你可以将 UI 划分为一个一个独立,可复用的小部件,并可以对每个部件进行单独的设计。

    在单页面应用(SPA)中扮演着重要角色

    组件简单实现 —— 函数式组件

    import React from 'react'
    import ReactDOM from 'react-dom'
    let Component1 = () => {
     return <h1>React Component</h1>
    }
    ReactDOM.render(
     <Component1 />,
     document.getElementById('app')
    )

    类组件 —— ES5 语法

    var React = require('react');
    var ReactDOM = require('react-dom')
    var Component1 = React.createClass({
     render: function(){
     return (
     <p>
     <h1>Tom</h1>
     <h1>Sam</h1>
     </p>
     )
     }
    })
    ReactDOM.render(
     <Component1 />,
     document.getElementById('app')
    )

    类组件 —— ES6 语法

    import React from 'react'
    import ReactDOM from 'react-dom'
    class Component1 extends React.Component{
     render(){
     return (
     <p>
     <h1>Tom</h1>
     <h1>Sam</h1>
     </p>
     ) 
     }
    }
    ReactDOM.render(
     <Component1 />,
     document.getElementById('app')
    )

    效果预览

    组件小结

  • 组件名首字母必须为大写

  • 函数返回一个虚拟 DOM 节点

  • 类组件必须要有 render 方法

  • render 必须返回一个虚拟 DOM 节点

  • 实际工作中,类组件是常用的方式

  • 组件属性(Props)

    因为组件的调用是 html 标签的形式,而 html 标签是可以添加属性,所以在 React 的组件当中也是可以添加自定义的属性,而属性的获取则用 this.props

    函数式组件

    import React from 'react'
    import ReactDOM from 'react-dom'
    let Component1 = (props) => {
     return <h1>name-{props.name}</h1>
    }
    ReactDOM.render(
     <Component1 name="Sam"/>,
     document.getElementById('app')
    )

    类组件

    import React from 'react'
    import ReactDOM from 'react-dom'
    class Component1 extends React.Component{
     render(){
     return <h1>name-{this.props.name}</h1> 
     }
    }
    ReactDOM.render(
     <Component1 name="Sam"/>,
     document.getElementById('app')
    )

    默认属性(DefaultProps)

    组件的属性除了可以通过调用的时候以 DOM 节点属性的方式传值,也可以设置默认的属性值,如果调用的时候没有传对应的属性值,则会用默认的属性值。
    getDefalutProps 这个方法只会被调用一次。

    //es5
    var React = require('react');
    var ReactDOM = require('react-dom');
    var Component1 = React.createClass({
     getDefaultProps: function(){
     return {
     name: 'Tom',
     age: 20
     }
     },
     render: function(){
     return (
     <p>
     <p>姓名:{this.props.name}</p>
     <p>年龄:{this.props.age}</p>
     </p>
     ) 
     } 
    })
    //es6
    import React from 'react';
    import ReactDOM from 'react-dom';
    class Component1 extends React.Component{
     static defaultProps = {
     name: 'Tom',
     age: 20
     }
     render(){
     return (
     <p>
     <h1>姓名:{this.props.name}</h1>
     <h1>年龄:{this.props.age}</h1>
     </p>
     )
     }
    }
    //或者
    Component1.defaultProps = {
     name: "Sam",
     age: 22
    }
    //使用
    ReactDOM.render(<Component1/>, document.getElementById('p1'));

    属性的类型规则(propTypes)

    通常情况下,在定义一个组件的时候把属性定义好,会加上一些使用的条件限制,比如某些属性值的数据类型必须是数组,或者某些属性不能为空,在这个时候,可以通过 propTypes 来设置。

    import React from 'react';
    import ReactDOM from 'react-dom';
    import PropTypes from 'prop-types'
    class Component1 extends React.Component{
     render(){
     return (
     <p>
     <p>姓名:{this.props.name}</p>
     <p>年龄:{this.props.age}</p>
     <p>学科:</p>
     <ul>
     {
     this.props.subjects.map(function(_item){
     return <li>{_item}</li>
     })
     }
     </ul>
     </p>
     )
     }
    }
    //定义属性 name 为字符串且必须有值
    Component1.propTypes = {
     name: PropTypes.string
    }
    ReactDOM.render(<Component1 name="Tom"/>, document.getElementById('p1'));

    相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

    推荐阅读:

    react实现选中li高亮步骤详解

    前端中排序算法实例详解

    文档

    React中组件定义使用详解

    React中组件定义使用详解:这次给大家带来React中组件定义使用详解,React中组件定义使用的注意事项有哪些,下面就是实战案例,一起来看一下。组件组件使你可以将 UI 划分为一个一个独立,可复用的小部件,并可以对每个部件进行单独的设计。在单页面应用(SPA)中扮演着重要角色组件简单
    推荐度:
    标签: 使用 定义 组件
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top