React 面向组件编程

React 函数式组件

  • 创建函数式组件
function MyComponent() {
    console.log(this); // 此处的 this 是 undefined,用为 babel 编译后开启了严格模式
		return <h2>我是函数定义的组件(适用于简单组件的定义)</h2>;
	}
  • 渲染组件到页面
ReactDOM.render(<MyComponent />,document.getElementById('test'));
  • 执行了ReactDOM.render(<MyComponent />,......);发生了什么?
    1. React 解析组件标签,找到了 MyComponent 组件
    2. 发现组件是函数定义的,随后调用该函数,将返回的虚拟 DOM 转为 真实 DOM,随后呈现在页面中

注意

  • 函数首字母必须大写
  • 函数必须有返回值
  • 标签必须闭合

类式组件

  • 创建类式组件
class MyComponent extends React.Component {
		render() {
		// render 是放在 MyComponent 的原型对象上,供实例使用
		console.log(this); //render 中的 this 是 MyComponent (组件)实例对象
			return <h2>我是类定义的组件(适用于复杂组件的定义)</h2>;
		}
	}
  • 渲染组件到页面
ReactDOM.render(<MyComponent />,document.getElementById('test'));
  • 执行了ReactDOM.render(<MyComponent />,......);发生了什么?
    1. React 解析组件标签,找到了 MyComponent 组件
    2. 发现组件是类定义的,随后 new 出来该类的实例,并通过该实例调用到原型上的 render 方法
    3. 将render返回的虚拟 DOM 转为 真实 DOM,随后呈现在页面中

注意

  • 类首字母必须大写
  • 函数必须有 render 方法
  • 标签必须闭合
posted @   懒惰ing  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-03-17 小程序的配置文件
2020-03-17 markdown 常见用法
2020-03-17 小程序开发前准备
点击右上角即可分享
微信分享提示