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. IT职场?未来?

    转自 IT职场?未来? 不能否认,有些技术大牛,生活也过的不错,工资不少挣.但是这种人,本来就不多啊,很少啊.这些人一般都是小时候就搞程序的,你觉得你半路出家,能变成这种超级牛人么?? 而且这些牛人, ...

  2. Python学习 day07

    一.关于解决问题的思路 1.删除列表中索引为单数的元素. 别人的思路: 利用切片 li = [11, 22, 33, 44, 55] li = li[::2] print(li) 思考:虽然学了pyt ...

  3. 深入应用C++11:代码优化与工程级应用》勘误表

    https://www.cnblogs.com/qicosmos/p/4562174.html

  4. 【密码学】RSA算法原理

    RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. RSA的算法涉及三个参数,n.e1.e2. 其中,n是两个大质数p.q的积,n的二进制 ...

  5. springboot 之 使用jetty web容器

    springboot 中默认的web容器是tomcat. 在maven 的pom 文件中加入如下依赖,便可使用tomcat 容器. <dependency> <groupId> ...

  6. bzoj 5314: [Jsoi2018]潜入行动

    Description 外星人又双叒叕要攻打地球了,外星母舰已经向地球航行!这一次,JYY已经联系好了黄金舰队,打算联合所有JSO Ier抵御外星人的进攻.在黄金舰队就位之前,JYY打算事先了解外星人 ...

  7. RocketMQ3.2.6安装部署及调用

    RocketMQ3.2.6安装部署及调用 1.RocketMQ部署架构 所有IP都是127.0.0.1,其中NameServer一个,Broker一个,Producer一个,Consumer一个 2. ...

  8. Java判断文件、文件夹是否存在

    在完成工作室任务的时候多次遇到这个问题,这是一个常用的知识点,记录如下: 1.判断文件是否存在,不存在则创建文件 File file=new File("C:\\2.jpg"); ...

  9. mysql通过数据文件恢复数据方法

    情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面.挂载在这台机器.可以从老硬盘里面拿到数据.只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报 ...

  10. Python pip windows安装

    参考页面: [1] : https://pip.pypa.io/en/latest/installing.html [2] : http://stackoverflow.com/questions/4 ...