1、React基础用法及JSX
基本使用
<body>
<div id="test"></div>
<!-- 核心库 -->
<script src="../../js/react.development.js"></script>
<!-- 提供DOM操作的扩展库 -->
<script src="../../js/react-dom.development.js"></script>
<!-- 解析JSX语法代码转为纯JS -->
<script src="../../js/babel.min.js"></script>
<script type='text/babel'> // 告诉babel.js解析里面的jsx代码
// 1. 创建虚拟DOM元素对象
var vDom = <h1>Hello React!</h1>
// 2. 将虚拟DOM渲染到真实的DOM容器中
ReactDOM.render(vDom, document.getElementById('test'))
</script>
</body>JSX理解和基本使用
JSX全程为JavaScriptXML,用于创建react虚拟DOM对象。
<body>
<div id="test1"></div>
<div id="test2"></div>
<!-- 核心库 -->
<script src="../../js/react.development.js"></script>
<!-- 提供DOM操作的扩展库 -->
<script src="../../js/react-dom.development.js"></script>
<!-- 解析JSX语法代码转为纯JS -->
<script src="../../js/babel.min.js"></script>
<script>
var msg = 'Hello React'
var MyId = 'MyId'
// 1. 创建虚拟DOM元素对象
var vDom1 = React.createElement('h2', { id: MyId.toLowerCase() }, msg.toLowerCase())
// 2. 将虚拟DOM渲染到真实的DOM容器中
ReactDOM.render(vDom1, document.getElementById('test1'))
</script>
<script type='text/babel'> // 告诉babel.js解析里面的jsx代码
// 1. 创建虚拟DOM元素对象
var vDom2 = <h3 id={MyId.toUpperCase()}>{msg.toUpperCase()}</h3>
// 2. 将虚拟DOM渲染到真实的DOM容器中
ReactDOM.render(vDom2, document.getElementById('test2'))
</script>
</body>babel将jsx代码转化为纯js代码。
创建虚拟DOM有两种方式
React.createElement()React.createElement('h2', { id: MyId.toLowerCase() }, msg.toLowerCase())第一个参数
表示需要创建的标签名
第二个参数
表示该标签的属性
第三个参数
表示该标签的值
jsx语法<h3 id={MyId.toUpperCase()}>{msg.toUpperCase()}</h3>遍历使用
{}语法包裹即可。
遍历数组
<div id="test"></div>
<!-- 核心库 -->
<script src="../../js/react.development.js"></script>
<!-- 提供DOM操作的扩展库 -->
<script src="../../js/react-dom.development.js"></script>
<!-- 解析JSX语法代码转为纯JS -->
<script src="../../js/babel.min.js"></script>
<script type='text/babel'> // 告诉babel.js解析里面的jsx代码
const names = ['JQuery', 'zeptp', 'angular', 'vue', 'react']
// 1. 创建虚拟DOM元素对象
var vDom = (
<ul>
// 将数组遍历
{names.map((name, index) => <li key={index}>{name}</li>)}
</ul>
)
// 2. 将虚拟DOM渲染到真实的DOM容器中
ReactDOM.render(vDom, document.getElementById('test'))
</script> 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooDisqusjs












