react语法注意事项

组件:

var HelloMessage = React.createClass({
  render: function() {
    return <h1>Hello {this.props.name}</h1>;
  }
});

ReactDOM.render(
  <HelloMessage name="John" />,
  document.getElementById(‘example‘)
);

  变量HelloMessage是一个组件类,模板插入<HelloMessage />时,会自动生成HelloMessage 的一个实例。注:所有组件类都必须有自己的render方法,用于输出组件。

  PS: 组件烦的第一个字母必须大写,否则会报错,比如HelloMessage不能写成helloMessage。另外,组件类只能包含一个顶层标签,否则也会报错

var HelloMessage = React.createClass({
  render: function() {
    return <h1>
      Hello {this.props.name}
    </h1><p>
      some text
    </p>;
  }
});

  上面代码会报错,因为HelloMessage组件包含了两个顶层标签:h1p

  组件的用法与原生的HTML标签完全一致,可以任意加入属性,比如<HelloMessage name="John" />,就是HelloMessage组件加入一个name属性,值为“John”。组件的属性可以在组件类的this.props对象上获取,比如name 属性就是可能通过this.props.name读取。

  this.props 对象的属性与组件的属性一一对应,但是有一个例外,就是this.props.children属性。它表示组件的所有子节点。

  

var NotesList = React.createClass({
   render: function(){
       return(
           <ol>
               {
                   React.Children.map(this.props.children,function(child){
                       return <li>{child}</li>
                    })
               }
            </ol>
        ) ;
   }
});

ReactDOM.render(
   <NotesList>
      <span>hello</span>
      <span>world</span>
   </NotesList>,
   document.body
)

  上面的代码的NoteList组件有两个span子节点,它们都可以通过this.props.children读取,运行结果如下。

  这里需要注意, this.props.children 的值有三种可能:如果当前组件没有子节点,它就是 undefined ;如果有一个子节点,数据类型是 object ;如果有多个子节点,数据类型就是 array 。所以,处理 this.props.children 的时候要小心。

  React 提供一个工具方法 React.Children 来处理 this.props.children 。我们可以用 React.Children.map 来遍历子节点,而不用担心 this.props.children 的数据类型是 undefined 还是 object。更多的 React.Children 的方法,请参考官方文档

  添加组件属性,有一个地方需要注意,就是class属性需要写成className,for属性需要写成hrmlFor,这是因为class和for是JavaScript的保留字。

时间: 2024-08-07 00:05:11

react语法注意事项的相关文章

mysql insert语法注意事项(ON DUPLICATE KEY UPDATE )

mysql insert语法注意事项(ON DUPLICATE KEY UPDATE ) INSERT语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIO

logstash_agent.conf 语法注意事项

编写配置文件时要注意语法,如新版本的logstash对参数host变更为hosts,去除了port参数等. [[email protected] logstash]# cat logstash_agent.conf input { file { type => "messages" path => ["/var/log/messages"] } } output { elasticsearch { hosts => "192.168.96

React 语法基础(一)之表达式和jsx

react负责逻辑控制 reactdom负责渲染 本节知识点 有 1)变量的使用,简单使用. 1==>jsx中的注释 {/* */} 2===> 简单的渲染 app.js ps==>定义变量 使用变量 import React from 'react'; function App() { const namet="我是表头";//定义变量 return ( <div> {/*我是注释 下面使用变量 它是表达式 */} {namet} </div>

react 语法细节总结说明

1.当要获取某个数据列表中的某个字段时,用"."附加的形式.例如:获取user中的balance字段,用this.props.user.balance 来表示. 2.当要打印某个数据或字段结果时,console.log(); , 例如: console.log("获得的balance结果是=",this.props.user.balance); 3.如果进入界面之前,就想要打印看一些信息时,可以在componentWillMount 函数中打印查看.例如:打印用户信

java 基础之语法注意事项

1.方法中语句不能使用static 修饰,因为方法是放在代码区中,static放在数据区中, JVM内存总体一共分为了4个部分(stack segment.heap segment.code segment.data segment) 当我们在程序中,申明一个局部变量的时候,此变量就存放在了 stack segment(栈)当中: 当new 一个对象的时候,此对象放在了heap segment(堆)当中: 而static 的变量或者字符串常量 则存在在 data segment(数据区)中: 那

webstrom编辑react语法报错解决

问题: 解决办法:1.把 JavaScript 的版本设置为 JSX Harmony. 2.把<script>type类型改为:text/jsx

React 开发注意事项

引用自定义组件的时候,组件名称首字母大写 import CustomComponent from "./customComponent "; render(){ return ( <CustomComponent></CustomComponent> ) } 原文地址:https://www.cnblogs.com/fws407296762/p/9594868.html

react纯前端不依赖于打包工具的代码

####react最基础的语法和不依赖环境的纯前端免编译代码 参照:http://www.ruanyifeng.com/blog/2015/03/react.html 注意事项:1.必须放倒服务器上,在文件系统上无法运行 login.html <!doctype html> <head> <meta charset="utf-8"> <script src="https://npmcdn.com/[email protected]/d

React Native环境配置和简单使用

# 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所偏差,在学习中如果有错会及时修改内容,也欢迎万能的朋友们批评指出,谢谢 文章第一版出自简书,如果出现图片或页面显示问题,烦请转至 简书 查看 也希望喜欢的朋友可以点赞,谢谢 了解 React Native 大家都知道,开发原生 App 的成本很高,但是目前基于原生开发仍然是必需的,随着 HTML