React -- 组件封装&props

一、组件封装

一个函数就是一个组件,该函数接受一个props对象,并返回一个React元素

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

通过class和React.Component也可以定义一个组件,跟上面的组件是等价的

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

二、声明组件

感觉其实声明一个React元素,只不过这个元素是以组件名字命名的类似单标签模式,里面写入要传入的props
比如上面创建的是Welcome组件,那么渲染时就是这样的
TipsReact中,自己封装的组件名字必须以大写字母开头,否则会识别为原生DOM标签

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

三、渲染组件

通过ReactDOM.render()函数就可以将组件渲染出来了

ReactDOM.render(
  element,
  document.getElementById('root')
);

四、组件嵌套

可以在组件里面,嵌套使用别的组件,比如创建一个新的App组件,在里面重复调用Welcome组件,然后渲染出去

function App() {
  return (
    <div>
      <Welcome name="World" />
      <Welcome name="React" />
    </div>
  )
}

渲染

ReactDOM.render(<App />,document.getElementById('root'))

五、组件分离

其实组件分离有点类似vue的组件化开发,可以把任何一个功能当成是一个组件,单独分离出来,以备复用,这个组件分离就是将一个复杂的组件里面的一些数据单独提取出来组成一个新的组件
比如上面的App组件,正常应该是这样的:

function App() {
  return (
    <div>
      <h1>Hello World</h1>
      <h1>Hello React</h1>
    </div>
  )
}

然后把h1标签部分提取出来为一个单独的组件使用,就变成了这样,成为一个Welcome组件

function App() {
  return (
    <div>
      <Welcome name="World" />
      <Welcome name="React" />
    </div>
  )
}

原文地址:https://www.cnblogs.com/zjh-study/p/10907758.html

时间: 2024-08-07 11:33:32

React -- 组件封装&props的相关文章

封装react组件——三级联动

思路: 数据设计:省份为一维数组,一级市为二维数组,二级市/区/县为三维数组.这样设计的好处在于根据数组索引实现数据的关联. UI组件: MUI的DropDownMenu组件或Select Field组件.将省市县数据定位常量,在UI组件里引用,通过数组遍历. 数据设计代码:(鉴于数据比较多,只列举部分) provinceData.js /********** 省级数据 **********/ export const provinces =['安徽省','澳门特别行政区','北京']; /**

07.React组件进阶(二)Props 深入

props 校验 //1.对于组件来说,props是外来的,无法保证组件使用者传入什么格式的数据 //2.如果传入的数据格式不对,可能会导致组件内部报错 //3.关键问题:组件的使用者不知道明确的错误原因 //4.props 校验:允许在创建组件的时候,就指定props的类型,格式等 App.propTypes = { colors:PropTypes.array } //5.作用:捕获使用组件时因为props 导致的错误,给出明确的错误提示,增加组件的健壮性 使用步骤 1.安装包 prop-t

react组件化开发发布到npm

1.项目目录 build:webpack打包用(开发环境.发布环境) example:开发环境的模板页 lib:打包好的文件夹(用于发布到npm上) src:想要封装的公共组件 .babelrc:处理es6语法 package.json:打包的依赖文件,管理项目模块包 开发环境配置(webpack.dev.config.js) const path = require('path') const htmlWebpackPlugin = require('html-webpack-plugin')

React 之 render props 的理解

1.基本概念 在调用组件时,引入一个函数类型的 prop,这个 prop定义了组件的渲染方式. 2.回调渲染 回顾组件通信的几种方式 父-> 子 props 子-> 父 回调.消息通道 任意 状态提升.Context.Redux 等 而 render props 本质实际上是使用到了回调的方式来通信.只不过在传统的 js 回调是在构造函数中进行初始化(使用回调函数作为参数),而在 react 中,现在可以通过 props 传入该回调函数,就是我们所介绍的 render prop. 从结果论来说

React + TypeScript 默认 Props 的处理

React 中的默认 Props 通过组件的 defaultProps 属性可为其 Props 指定默认值. 以下示例来自 React 官方文档 - Default Prop Values: class Greeting extends React.Component { render() { return ( <h1>Hello, {this.props.name}</h1> ); } } // Specifies the default values for props: Gr

React 组件复合

React组件复合 · 通过React写组件时,应当尽可能地将组件分为更小的更多的组件,然后再复合组件. 比如下面的评论组件就是一个组件,一个庞大的组件,这时我们还没有将之分解,更没有复合: function Comment(props) { return ( <div className="Comment"> <div className="UserInfo"> <img className="Avatar" sr

二、React初体验之React组件创建

(中间因为应付各种考试,处理其他事情,隔了好时间没更新,现在终于有时间了,续上!) 本文为React初始体验,因此先不考虑文件如何组织,尽量以最简单的方式让大家了解React其中的原理. 在创建组件(component)之前,大家首先需要了解一些基础知识.有ES6.JSX语法等基础知识的同学请跳过下面一段. ES6是JavaScript的最新标准,里面新增了许多语法方式,甚至出现了“类”的继承方式,我个人暂且把他们理解为新增了许多“语法糖”,这些“语法糖”可能带给老手的是方便,而对于我们这些菜鸟

react组件渲染的一些想法

最近一直在思考一个问题,react的单向数据流面对深层次组件集合(redux connect方法返回的组件,即一项完整的功能)时,数据该如何传递???redux帮助我们解决了什么问题??? 我使用了redux+react,发现redux并没有解决react组件之间数据传递问题.只是把数据中心化与避免了父组件取子孙组件的数据时那繁琐的回调,却增加了三个麻烦的东西action.reducer.mapStateProps.复杂的处理流程:action里新增一条数据,reducer就需要增加一个对该数据

React组件性能优化

转自:https://segmentfault.com/a/1190000006100489 React: 一个用于构建用户界面的JAVASCRIPT库. React仅仅专注于UI层:它使用虚拟DOM技术,以保证它UI的高速渲染:它使用单向数据流,因此它数据绑定更加简单:那么它内部是如何保持简单高效的UI渲染呢? React不直接操作DOM,它在内存中维护一个快速响应的DOM描述,render方法返回一个DOM的描述,React能够计算出两个DOM描述的差异,然后更新浏览器中的DOM. 就是说R