美文网首页
react的基本语法

react的基本语法

作者: 哼_ | 来源:发表于2017-08-16 19:59 被阅读190次

react 官方推荐使用 一种JSX语法,类似xml
react.js 引入的时候放在react-dom.js的前面引入
引入jsx.js的时候,一定要指定 type="babel" 才能识别混写的jsx.js 文件

<script src="jsx.js" type="text/babel"></script>

基础语法

我们先在index.html的文件里面写一个div,
<div class="box"></div>
其他的操作都在jsx.js的文件里面
浏览页面的时候,要切换到服务器模式

常量用法

const a = <h1>Hello react!!</h1>;
ReactDOM.render(
  <div>{ a }</div>,
document.querySelector(".box")
)

以上,ReactDOM.render(html,target[,callback])将内容渲染到指定的节点
就是把常量 a 渲染到 box这个类名的容器里面,(记得div的后面要加一个逗号.)

变量用法 内部解析

let msg = "Hello React!!!";
let href = "http://www.baidu.com";
定义一个常量b
const b = <a href={ href }>{ msg }</a>
ReactDOM.render( <div>{ b }</div>, document.querySelector(".box") )

页面就会显示一个可以跳转到百度的一个 a 标签
记忆点:
1 { } 就代表进入javascript 的执行环境

不用jsx语法,用react 提供的语法怎么写

const c = React.createElement("a",{href:"http://www.baidu.com"},"复杂超链接")

ReactDOM.render(
  <div>{ c }</div>,
document.querySelector(".box")
)

这是不使用jsx的语法,使用react创建一个元素的语法(写法)
这是创建了一个a 标签,创建了一个href 属性,

还有其他react方法,稍微简单点的

const d = React.DOM.a({href:"http://www.baidu.com"},"复杂超链接2")
ReactDOM.render(
  <div>{ d }</div>,
document.querySelector(".box")
)

嵌套的写法

const e = <div>
  <h1>嵌套</h1>
  <span>span嵌套</span>
  <input type="text" />
 </div>
ReactDOM.render(
  <div>{ e }</div>,
document.querySelector(".box")
)

用createElement怎么写

把子作为第三个参数创建进来 比e的方法要难一些,

const f = React.createElement("div",null,
    React.createElement("h1",null,"嵌套2")
);
ReactDOM.render(
  <div>{ f }</div>,
document.querySelector(".box")
)

使用react.js不一定要使用jsx语法
可以使用javascript 原生语法,使用与不使用在嵌套的时候,就表现得很明显了,不使用jsx ,代码很多,一直在createElement,但是使用了的话,就直接使用标签就可以了

image.png

jsx真正的语法

image.png
1 必须要有结束的斜杠结束符 <input type="text" />
2 注意, style 要用两个花括号,外面的花括号说明进入javascript 环境,里面的花括号说明 对象,不等同于vue的表达式

样式的设置,表达式语法

const g = <span style={{color:"red",fontSize:"30px"}}>style写法</span>
ReactDOM.render(
  <div>{ g }</div>,
document.querySelector(".box")
)

换一种写法,style 就可以用一个花括号写

const so = {
    color:"blue",
    fontSize:"20px",
    border:"1px solid pink",
    background :"#ccc"
}
const h = <span style={ so }>style 写法2</span>
ReactDOM.render(
  <div>{ h }</div>,
document.querySelector(".box")
)

这样写,样式加的比较多,但是也是分开三部分的,so 是样式部分,const h 是标签部分,ReactDOM.render()是渲染页面部分

关键字冲突

我们在index.html里面写一点样式

<style>
.cn{
        color:red;
        font-size: 40px;
    }
</style>
//在jsx.js里面写
const i = <span className="cn">class 写法</span>

1 直接象在写页面样式的时候class="cn"
是不可以的,要写成className
2 对于一些关键字要进行转换, class 要写成 className, label 标签的for属性 要写成 htmlFor

const ii = <div>
    <label htmlFor="male">nan</label>
    <input type="radio" id="male" name="sex"/>
    <label htmlFor="ff">nv</label>
    <input type="radio" id="ff" name="sex"/>
</div>
ReactDOM.render(
  <div>{ ii }</div>,
document.querySelector(".box")
)

image.png

如果用for 就会报上面的错误
改成htmlFor 就不会报错了
label 标签是应用于 选择的

跟标签及烦人的注释写法

ReactDOM.render(
  <div>
{/*这是一段注释 jsx 的注释必须用{}包裹,只能有一个根节点*/}
      { ii }
      { a }
        { b }
        { c }
        { d }
        { e }
        { f }
        { g }
        { h }
        { ii }
        { i }
        { j }
        { k }
        { l }
  </div>,
document.querySelector(".box")
)

数组的使用

const j = [
    
        <h1 key="1">数组一</h1>,
        <h1 key="2">数组二</h1>,
        <h1 key="3">数组三</h1>
    
]
ReactDOM.render(
<div>
{ j }
</div>
)
document.querySelector(".box")

一个数组里面有三个元素,没有key属性的时候,会报错

image.png
const k = <div>
<hr/>
    <h1>Hello</h1>
    { j }
</div>;
ReactDOM.render(
<div>
{ k }
</div>
)
document.querySelector(".box")

j 是一个数组,用{ } 放在那里都可以
如果数组里面直接是一堆标签,那么就会直接渲染到另一个父标签里面,可以渲染到跟div 里面,也可以渲染到 k 的父元素div 里面

数组
const l =["数组四","数组5","数组6"];

ReactDOM.render(
<div>
{ l }
</div>
)
document.querySelector(".box")

如果没有标签包裹,就会直接渲染到页面中,没有标签包裹
我们可以这样写

使用map函数遍历数组

ReactDOM.render(
<div>
{
    l.map((m,index)=>{
    return <h1 key={ index }>{ m }</h1>
  })
}
</div>
)
document.querySelector(".box")
image.png

相关文章

  • Hello React

    知识点 1、JSX语法     2、React基本语法     3、bower的基本使用     4、babel的...

  • react 基本语法

    目录 html模板 ReactDOM.render() JSX 语法 组件 & props props & 纯函数...

  • react的基本语法

    react 官方推荐使用 一种JSX语法,类似xmlreact.js 引入的时候放在react-dom.js的前面...

  • react基本操作回顾

    1.基本语法 1.1快速搭建 Cnpm i -g create-react-appCreate-react-app...

  • React

    React脚本架工具create-react-app React基本语法1.视图中如何插值: 用 { }可以插...

  • React第一天

    React脚本架工具 React基本语法 1.视图中如何插值: 用 { } 2.React遍历--map 相...

  • [react]3、基本语法

    1、类的定义 1、ES5语法类的定义 2、ES6语法类的定义 3、map高阶函数 2、JSX语法 JSX是一种Ja...

  • react新手入门06-浅谈前端路由和后端路由

    背景: 在了解react的JSX, props, state以及基本语法后,入手实际react项目,可能会对项目中...

  • React Native学习笔记(二)

    本文介绍了React基本语法概念和React Native环境搭建及示例。 本文首发:http://yuweigu...

  • React 语法基本使用介绍

    前面的文章我们已经配置好了环境,接下来熟悉一下 react 的基础语法: 一、认识入口文件 React 中,app...

网友评论

      本文标题:react的基本语法

      本文链接:https://www.haomeiwen.com/subject/vaqirxtx.html