import React, { Component } from 'react';
class App extends Component {
  render() {
    return (
      <div className="App">
        hello world
      </div>
    );
  }
}
export default App;
比如App.js这个文件中,之前我们<div></div>一般都是在html文件中写的,现在我们把这样的标签写在了js文件中,所以我们是在js里面去写html标签,在react中,我们把在js文件中写的这种标签就叫做jsx语法,在react之中,jsx语法与普通的js语法有些区别
 
最直观的感受就是以前如果我们写普通的js语法,想要渲染一段html文本的话,一般会去返回一个字符串,比如
return '<div className="App">hello world</div>'
那如果这么去写,我们去运行我们的代码,发现展现出来的就是<div className="App">hello world</div>。
 
第二点,在jsx这种标签的写法之中,不仅仅可以用html的一些标签,比如说div,span,p。我们还可以使用自己定义的一些标签,比如<App/>。
在jsx语法中,如果我们要使用自己创建的组件,我们直接通过这种标签的形式使用我们定义的组件名就可以了。
 
这里有一点要注意,就是不能把开头的写成小写的,要大写。小写在jsx里面是不支持的。在jsx里面,如果要使用自己的组件,组件的开头必须以大写字母开头,所以整体的感觉就是看到大写的标签就是组件,小写的一般就是h5标签。
 
如何再jsx里面去编写注释
{/* 注释 */}
这样写,需要通过一个花括号去写。这个只对开发有用,不会在页面上展现的
{
// 单行注释
}
这是单行的注释,大括号需要换行
jsx里面的样式
不能用class,会认为是个类,所以引用样式需要用className来代替class,这样就是react里标准的写法
如果通过输入框里面的标签,不想通过转义怎么弄,比如<h1>hello</h1>
<li
  key={index}
  onClick = {this.handleItemDelete.bind(this, index)}
  dangerouslySetInnerHTML={{__html: item}}
>
</li>
dangerouslySetInnerHTML,危险的设置,可能会被攻击
在html里面label的作用是扩大点击区域
<div>
<label for='inputSet'>输入内容:</label>
  <input
    id = 'inputSet'
    className = 'input'
    value = {this.state.inputValue}
    onChange = {this.handleInputChange.bind(this)}/>
  <button onClick = {this.handleBtnClick.bind(this)}> 提交 </button>
</div>
我们可以看到,点击输入内容的时候,光标会自动的进入input框,虽然没什么问题,但打开控制台会报错,推荐我们使用htmlFor,在react中,这个for会认为是循环的for
<div>
<label htmlFor='inputSet'>输入内容:</label>
  <input
    id = 'inputSet'
    className = 'input'
    value = {this.state.inputValue}
    onChange = {this.handleInputChange.bind(this)}/>
  <button onClick = {this.handleBtnClick.bind(this)}> 提交 </button>
</div>

React中最基础的jsx语法的更多相关文章

  1. React实例入门教程(1)基础API,JSX语法--hello world

      前  言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发 ...

  2. 【原创】React实例入门教程(1)基础API,JSX语法--hello world

    前  言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发效率 ...

  3. react脚手架和深入理解jsx语法

    react的mvc和vue的mvvm vue的mvvm属于双向绑定,view层,model数据层,vm实现双向绑定的控制层 此种模式,再某一类项目种很有优势:管理系统 ( OA, ERP , CRM ...

  4. react系列(一)JSX语法、组件概念、生命周期介绍

    JSX React中,推出了一种新的语法取名为JSX,它给了JS中写HTML标签的能力,不需要加引号.JSX的语法看起来是一种模板,然而它在编译以后,会转成JS语法,只是书写过程中的语法糖. JSX的 ...

  5. Oracle数据库 中的基础的一些语法结构

    方括号里的内容为可选项 大括号是必填 1PL/SQL结构块 DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQ ...

  6. 3.react 基础 - JSX 语法

    1.最基础的 JSX 语法 普通javaScript中 引入 标签 let html = '<h1>hello</h1>'; jsx语法 let JSX_html = < ...

  7. webpack打包调试react并使用babel编译jsx配置方法

    http://lxj8749.iteye.com/blog/2287074 ********************************************** 安装webpack npm i ...

  8. React中的虚拟DOM

    当组件当state和props发生变化当时候,组件当render函数就会重新执行,组件就会被重新渲染,react中实现这种重新渲染,他的性能是非常高的,因为他引入了一个虚拟Dom的概念,那么什么是虚拟 ...

  9. React中diff算法的理解

    React中diff算法的理解 diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DO ...

随机推荐

  1. docker 安装使用gitlab

    官方镜像地址  ce版本: https://hub.docker.com/r/gitlab/gitlab-ce 文档地址: https://docs.gitlab.com/omnibus/docker ...

  2. express遇到的问题

    1. 如何引入express? cnpm install express --save 其中--save可以保存到依赖项中. 接着 var express = require("expres ...

  3. VMware虚拟机上安装xp操作系统

    前提:安装好虚拟机 资料:windows xp 的虚拟机操作系统 上面这个文件最好保存好一份,防止以后虚拟机用坏了可以重新安装. 1 新建目录D:\virtual machine\vSQL\vm将我们 ...

  4. Struts2中Action对象的set方法和get方法调用规则

    Struts的Action是采用的是多实例多线程设计,而不是像Servlet那样采用单实例多线程设计,因此在struts中,一个请求就对应一个Action对象,个对象之间的数据相互之间互不干扰.没接到 ...

  5. 从数据库中导出数据到.csv文件

    考虑到csv文件比xls文件格式容易控制,所以在这次导出中用的是.csv格式. protected function exportInfo($arr, &$err){ $nameInfo = ...

  6. 4、Angular2 pipe

    1. stateless pipe 2.stateful pipe

  7. .net生成cookie,读取cookie,创建特性

    1.登录或注册成功时生成票据和cookie 注释:__JZY_Common_User_Login_Cookie__:就是为了判断当前登录人(例如:管理员和普通用户,可以定义两个常量,可有可无) 2.读 ...

  8. 【转】sqlserver字符串拆分(split)方法汇总

    Java..net等开发工具具有split功能,最近在Sqlserver中碰到这个需求. 方法1:动态SQL法 ),) set @string='1,2,3,4,5,6,7,8,9,10' set @ ...

  9. RestTemplate请求出现401错误

    最近遇到一个请求API接口总是报401 Unauthorized错误,起初是认为这个是平台返回的,后来用Postman请求,发现平台其实返回的是一串json,里面带有一些权限验证失败的消息,但到我们代 ...

  10. 进程和程序(Process and Program)

    原出处:http://oss.org.cn/kernel-book/ch04/4.1.htm ----------------------------------个人理解分割线------------ ...