React学习之进阶JSX语法(十一)

本文详细探讨了React JSX的高级语法,包括组件构造规则、大小写敏感性、选择组件的方法、JSX表达式的多样用法、扩展运算符的应用、属性的注意事项,以及无效的JSX孩子元素及其在条件渲染中的作用。通过实例解析,帮助开发者更好地掌握React JSX的精髓。
摘要由CSDN通过智能技术生成

1.再顾JSX语法

从我第一篇博客来看,JSX其实就是提供了一个实现React.createElement(component, props, ...children)函数的便捷方法

<MyButton color="blue" shadowSize={
  2}>
  Click Me
</MyButton>

React编译完后就形成了

React.createElement(
  MyButton,
  {
  color: 'blue', shadowSize: 2},
  'Click Me'
)

所以注意,第一个参数不一定是一个DOM参数,只要是一个JSX组件或者是DOM标签。

当然如果你不加入子内容的话

<div className="sidebar" />

直接闭合标签即可

编译后

React.createElement(
  'div',
  {className: 'sidebar'},
  null
)

2.不要试图用属性访问符来构造JSX组件

const MyComponents = {
  DatePicker: function DatePicker(props) {
   
    return <div>Imagine a {props.color} datepicker here.</div>;
  }
}

function BlueDatePicker() {
   
//Warning : no allowed
  return <MyComponents.DatePicker color="blue" />;
}

这种使用.属性访问符进行构建JSX组件虽然不会报错,但是不允许

3.用户自定义的组件名必须是大写的

function hello(props) {
   
  return <div>Hello {props.toWhat}</div>;
}

function HelloWorld() {
   
  return <hello toWhat="World" />;
}

此方法是不会有任何输出的

至于为什么之前的博客也讲过,DOM元素才能用小写,其他的都应该用大写。

如果你已经将一个组件的名字写成了小写,可以将它赋值给一个大写的变量即可

function HelloWorld
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值