React学习笔记 - 组件

极客班主任
• 阅读 1502

组件化是前端框架一个重要的思想,也是让我们偷懒的一个方法之一,?。

想象我们在写前端页面的时候,页面中的有些元素肯定是会被重复使用的。那么我们需要把这些元素打包成一个东西来重复使用,那么这个就是组件。

React中组件就是一个函数,它可以接受任意的输入值,我们称之为props

React中定义组件的方式有两种,一种是javascript函数,一种是ES6 class的方式

组件的创建

javascript functiond的形式

function Welcome(props) {
    return <h1>Hello, {props.name}</h1>
}

ES6 class 的形式

class Welcome extends React.Component {
    render(){
        return <h2>Hello, {this.props.name}</h2>
    }
}

组件的渲染

前面提到的React元素都是DOM标签,然而React元素也可以是用户自定义的组件。

const element = <Welcome name="sara" />

当React遇到用户自定义的组件的时候,他会将JSX属性作为单个对象props传递给该组件。例如:

function Welcome(props) {
    return <h2>Hello, {props.name}</h2>
}

const element = <Welcome name="sara" />
ReactDOM.render(
    element,
    document.getElementById('root')
);

组件树

一个组件可以在它的输出中引用其他组件。这就可以让我们用同一组件来抽象出任意层次的细节。
在一个React应用程序中,顶部是一个App组件,下面则是不断抽象的子组件,呈现树装结构。

Props的只读性

React组件中传入的props是只读的,不能对其进行修改。

但是应用的界面是随着时间动态变化的,组件需要动态变化则应该这么弄呢?

点赞
收藏
评论区
推荐文章
爱丽丝13 爱丽丝13
4年前
React 组件通信之发布订阅模式
React通信react的数据流是单向的,react通信有以下几种方式:父向子通信:传入props子向父通信:父组件向子组件传一个函数,然后通过这个函数的回调,拿到子组件传过来的值父向孙通信:利用context传值。React.createContext()兄弟间通信:​1、找一个相同的父组件,既可以用pr
亚瑟 亚瑟
4年前
自定义 Hook – React
自定义Hook_Hook_是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。通过自定义Hook,可以将组件逻辑提取到可重用的函数中。在我们学习时,我们已经见过这个聊天程序中的组件,该组件用于显示好友的在线状态:importReact,{useSta
Stella981 Stella981
3年前
Angular之自定义组件添加默认样式
Angular的核心思想之一就是:组件化。组件化可以使我们的代码更好的复用。在使用官方提供的Angular库AngularMaterial时,细心的同学就会发现,Material的每一个组件都有它自己样式,如:按钮:matbutton工具条:mattoolbar表格
Stella981 Stella981
3年前
React与Vue的相同与不同点
我们知道JavaScript是世界上最流行的语言之一,React和Vue是JS最流行的两个框架。所以要想前端的开发那么必须掌握好这两个框架。那么这两个框架有什么不同呢?React和Vue相同之处,它们都有:使用VirtualDOM提供了响应式(Reactive)和组件化(Composable)的视图组件
Stella981 Stella981
3年前
React.js 时间组件 + 组件生命周期(更新模拟)
React是用于构建用户界面的JavaScript库,React组件使用一个名为render()的方法,接收数据作为输入,输出页面中对应展示的内容。React除了可以使用外部传入的数据以外(通过this.props访问传入数据),组件还可以拥有其内部的状态数据(通过this.state访问状态数据)。当组件的状态
Stella981 Stella981
3年前
React 第一个小游戏(井字棋)知识关键点
1、React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库通过使用组件来告诉React我们希望在屏幕上看到什么。当数据发生变化时,React会高效的更新并重新渲染我们的组件2、render返回了一个React元素,这是一种对渲染内容的轻量级描述。大多数的React开发者使用了一种名为"JSX"的特
Wesley13 Wesley13
3年前
DOM元素的自动隐藏
在一些有悬浮元素的场景中,比如点击一个按钮弹出菜单后,点击菜单以外的地方,菜单应该被隐藏起来。隐藏的方式最好是自动隐藏,或至少是组件内的自动隐藏。蒙层比如,一个模态框组件(闭包实现)点击蒙层时,响应蒙层的点击事件,可以在事件处理函数中隐藏整个组件。在Vue和React等框架的组件中,这一点非常容易实现。<divclass"com
可莉 可莉
3年前
04. react 初次见面
    组件从概念上看就像是函数,它可以接收任意的输入值(称之为“props”),并返回一个需要在页面上展示的React元素。1、组件定义的两种方式1.1函数定义组件  定义一个组件最简单的方式是使用JavaScript函数:functionWelcome(props){return<