React(精读官方文档) -高级指引 - 深入 JSX

深入 JSX

概述

  • jsx 本质是React.createElement(component, props, …children)的语法糖
  • component 指定 React 元素的类型
  • React 必须在作用域内
  • 在 JSX 类型中可以使用点语法
  • 不能将通用表达式作为 React 元素类型
  • js表达式可以作为props传递给 jsx
  • Props 默认值为 “True”
  • 布尔类型、Null 以及 Undefined 不会被渲染

React.createElement(component, props, …children)语法糖

	//如下 JSX 代码:
	<MyButton color="blue" shadowSize={
   2}>
	  Click Me
	</MyButton>
    
    //会编译为:
    React.createElement(
	  MyButton,
	  {
   color: 'blue', shadowSize: 2},
	  'Click Me'
	)
	
		//如果没有子节点,你还可以使用自闭合的标签形式,如:
	  <div className="sidebar" />
	  //会编译为:
	  React.createElement(
		  'div',
		  {
   className: 'sidebar'}
		)

指定 React 元素类型

  • JSX 标签的第一部分指定了 React 元素的类型,大写字母开头的 JSX 标签意味着它们是 React 组件

React 必须在作用域内

  • 由于 JSX 会编译为 React.createElement 调用形式,所以 React 库也必须包含在 JSX 代码作用域内
     //在如下代码中,虽然 React 和 CustomButton 并没有被直接使用,但还是需要导入:
       import React from 'react';
       import CustomButton from './CustomButton';
       
       function WarningButton() {
         
         // return React.createElement(CustomButton, {color: 'red'}, null);
         return <CustomButton color="red" />;
       }
    

在 JSX 类型中使用点语法

  • 以使用点语法来引用一个 React 组件
  • 你在一个模块中导出许多 React 组件时,这会非常方便哦
       import React from 'react';
       const MyComponents = {
         
         DatePicker: function DatePicker(props){
         
           return <div>Imagine a {
         props.color} datepicker here
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值