React jsx语法入门

JSX就是Javascript和XML结合的一种格式。
React发明了JSX,利用HTML语法来创建虚拟DOM。
简单的来说:
1.遇到标签,JSX就当HTML解析。
2.遇到{代码}就当JavaScript解析。
注意:解析使用到了babel插件
入门案例:
1.安装:
webpack:
    cnpm install webpack webpack-cli -D
webpack-dev-server:
    cnpm i webpack-dev-server -D
babel:
    cnpm i babel-loader -D
    cnpm i @babel/core @babel/plugin-transform-runtime @babel/preset-env -D
    cnpm i @babel/preset-react -D
React:
cnpm i react react-dom -s
2.配置文件:
package.json
{
“name”: “demo”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“scripts”: {
“test”: “echo “Error: no test specified” && exit 1”,
+“dev”: "webpack-dev-server --open --port 3000 --hot --host 127.0.0.1"
},
“keywords”: [],
“author”: “”,
“license”: “ISC”,
“devDependencies”: {
“@babel/core”: “^7.4.3”,
“@babel/plugin-transform-runtime”: “^7.4.3”,
“@babel/preset-env”: “^7.4.3”,
“@babel/preset-react”: “^7.0.0”,
“babel-loader”: “^8.0.5”,
“html-webpack-plugin”: “^3.2.0”,
“webpack”: “^4.30.0”,
“webpack-cli”: “^3.3.0”,
“webpack-dev-server”: “^3.3.1”
}
}
webpack.config.js
const path=require(‘path’)
//把html映射的项目跟目录
const HtmlWebPackPlugin=require(‘html-webpack-plugin’)
//

//创建插件实例
const htmlPlugin=new HtmlWebPackPlugin({
template:path.join(__dirname,’./src/index.html’),//源文件
plugins:‘index.html’//映射的目录,默认项目跟目录

})
//向外暴露一个配置对象
module.exports={
mode:‘development’,//development ,production
plugins:[//第三方插件
htmlPlugin
],module:{//第三方模块匹配规则
rules:[
{
test:/.js|jsx$/,//匹配规则
use:‘babel-loader’,//指定解析器
exclude:/node_modules/
}
]
}
}
.babelrc
{
“presets”: [
“@babel/preset-env”,"@babel/preset-react"
],“plugins”: [
“@babel/plugin-transform-runtime”
]
}
3.代码
index.html







index.js
//导入组件:生成虚拟DOM对象,生命周期
import React from ‘react’
//导入组件:把创建好的组件和虚拟DOM对象,渲染到页面
import ReactDOM from ‘react-dom’
//jsx语法
//1渲染数字
let num=10
//2渲染字符串
let str=‘你好中国’
//3 .渲染boolean
let bool=true
//4. 为属性绑定值
let title=‘999’
//注意赋值的时候没有引号
//5. 渲染jsx元素
const myh1=

哈哈哈jsx


//6. 渲染jsx元素数组
const myarr=[

aaa

,

bbb

,

ccc

]
//7. 将普通字符数组换行 jsx数组
const strarr=[‘西游记’,‘东游记’,‘北游记’]
//方式一,遍历组装
const parsearr=[]
//forEach 遍历组装
strarr.forEach(item=>{
parsearr.push(

{item}

)
})
//map 遍历组装
const parsearr2=strarr.map(item=>{
return

{item}


})
const mydiv=

{num+10}



{str}


{bool?‘true’:‘false’}

段落


{
//特殊属性:
//1. class 要写成className
//2. for属性要写成 htmlFor
}


//5. 渲染jsx元素
{myh1}

//6. 渲染jsx元素数组
{myarr}

{parsearr}

{parsearr2}

{strarr.map(item=>{
return

{item}


})}


//如果只有一行代码 括号可以省略,return 也可以省略
{
/ jsx注释:如果只有一行代码 括号可以省略,return 也可以省略/
//jsx注释:如果只有一行代码 括号可以省略,return 也可以省略
}
{strarr.map(item=>

{item}

)}

//渲染到页面
ReactDOM.render(mydiv,document.getElementById(‘app’))
案例下载

你可能感兴趣的:(react,React,JSX)