React入门系列二(React-JSX)
2018-03-06 14:38
447 查看
React入门系列二(React-JSX)
React 使用 JSX 来替代常规的 JavaScript。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。不一定非要使用 JSX,但它有以下优点:1)JSX 执行更快,在编译为 JavaScript 代码后进行了优化。
2)它是类型安全的,在编译过程中就能发现错误。
3)使用 JSX 编写模板更加简单快速。
一、使用JSX
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>使用JSX</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( 4000 <div>你好哦,欢迎使用JSX</div>, document.getElementById('example') ); </script> </body> </html>
关于ReactDOM.render
ReactDOM.render是react最基本的用法,用于将模板转化为HTML语言,并插入指定的DOM结点。
ReactDOM.render(template,targetDOM);接收两个参数,第一个参数用来创建模板,多个DOM元素外层需要使用一个标签进行包裹;第二个参数用来指定插入该模板的目标位置。
JSX允许JavaScript和HTML混写。
二、将JSX代码写入独立文件引入
HTML文件 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>将JSX写入独立文件引入</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel" src="js/hello_react.js"></script> </body> </html> JS文件 ReactDOM.render( <div>你好哦,欢迎使用JSX</div>, document.getElementById('example') );
三、在JSX中使用JavaScript表达式
可以在 JSX 中使用 JavaScript 表达式,表达式写在花括号 {} 中。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>在JSX中使用JavaScript表达式</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <div>{20+25}</div>, document.getElementById("example") ); </script> </body> </html>
在 JSX 中不能使用 if else 语句,但可以使用三元运算表达式来替代。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>在JSX中使用三元运算表达式</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var a=1; ReactDOM.render( <div>{a==1?'true':'false'}</div>, document.getElementById("example") ); </script> </body> </html>
四、React 推荐使用内联样式
可以使用 camelCase(驼峰命名) 语法来设置内联样式. React 会在指定元素数字后自动添加 px 。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>React 推荐使用内联样式</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var myStyle={ color:'green' }; ReactDOM.render( <h1 style={myStyle}>React 推荐使用内联样式</h1>, document.getElementById("example") ); </script> </body> </html>
五、React注释
在标签内部的注释需要花括号,在标签外的的注释不能使用花括号
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>注释</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( /*注释*/ <div> {/*注释*/} <p>注释</p> </div>, document.getElementById('example') ); </script> </body> </html>
六、数组
JSX 允许在模板中插入数组,数组会自动展开所有成员
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>数组</title> <!-- 引入React三个文件--> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var array=[<div>1</div>,<div>2</div>,<div>3</div>]; ReactDOM.render( <div>{array}</div>, document.getElementById('example') ); </script> </body> </html>
相关文章推荐
- React入门笔记(一) — 深入理解JSX
- React入门以及JSX语法理解
- React文档翻译系列(三)JSX简介
- React从入门到精通系列之(14)refs和DOM元素
- React入门笔记(一) — 深入理解JSX
- React Native入门学习笔记三(JSX语法)
- React入门教程(一)——JSX学习篇
- React-Native 入门指导系列教程目录
- React 入门-JSX
- 【原创】React实例入门教程(1)基础API,JSX语法--hello world
- React-Native入门指南(六)——JSX在React-Native中的应用
- React实践系列笔记-JSX
- react入门-jsx
- JavaScript的React框架中的JSX语法学习入门教程
- React入门:关于JSX语法
- React入门系列一(初识React)
- 《React从入门到放弃》 第二集 JSX
- React实例入门教程(1)基础API,JSX语法--hello world
- react系列(一)JSX语法、组件概念、生命周期介绍