zoukankan      html  css  js  c++  java
  • React中最基础的jsx语法

    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>
  • 相关阅读:
    angularjs制作的iframe后台管理页切换页面
    javascript读取本地文件
    nginx Engine X静态网页服务器介绍
    关于 bounds 和 frame
    iOS 开发常见函数
    HTTP POST GET 本质区别详解(转)
    从 UIAlertView 到 UIAlertController
    学习 AFNetworking 3.0
    UICollectionView详解
    UITableView整理
  • 原文地址:https://www.cnblogs.com/wzndkj/p/10501541.html
Copyright © 2011-2022 走看看