瀏覽代碼

React:jsx渲染数据&静态绑定属性

大侠 2 年之前
父節點
當前提交
9b366bd5ea

+ 31 - 0
15_React/day-1/code/2.jsx:绑定数据.html

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+    <script src="../../babel.min.js"></script>
+    <script src="../../react.development.js"></script>
+    <script src="../../react-dom.development.js"></script>
+  </head>
+  <body>
+    <div id="root"></div>
+    <!-- 默认 script 类型 为 text/javascript -->
+    <!-- 注意:这里的script必须指定类型为 text/babel 这样才能被babel工具翻译成js代码 -->
+    <script type="text/babel">
+      let name = 'daxia';
+      // const element = <h1>hello, {name}</h1>;
+      // const element = <h1>1 + 1 = {1 + 1}</h1>;
+      // 在react中 可以通过 {表达式} 语法 动态给jsx绑定数据
+      const element = (
+        // <h1>反转name顺序: {name.split('').reverse().join('')}</h1>
+        <h1>反转name顺序: {[...name].reverse().join('')}</h1>
+      );
+
+      const root = ReactDOM.createRoot(document.getElementById('root'));
+
+      root.render(element);
+    </script>
+  </body>
+</html>

+ 50 - 0
15_React/day-1/code/3.jsx:属性绑定.html

@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+    <script src="../../babel.min.js"></script>
+    <script src="../../react.development.js"></script>
+    <script src="../../react-dom.development.js"></script>
+    <link rel="stylesheet" href="./common.css" />
+  </head>
+  <body>
+    <div id="root"></div>
+    <script type="text/babel">
+      const root = ReactDOM.createRoot(document.querySelector('#root'));
+
+      // 绑定属性
+      // 静态绑定
+      let element = <h1 id="h1">我的id为h1</h1>;
+      // 每一个jsx元素 必须正确匹配一个闭合标签
+      element = <img src="./6.jpeg" alt="美女" width="300" height="400" />;
+      // 使用camelCase绑定多个单词的属性
+      element = (
+        <table>
+          <tr>
+            <td colSpan="2">成绩</td>
+          </tr>
+          <tr>
+            <td>数学</td>
+            <td>语文</td>
+          </tr>
+        </table>
+      );
+
+      // class 是 属于js关键字,在React中不允许作为其属性名
+      // element = <div class="title">我是一段文本</div>;
+      // element = <div className="title">我是一段文本</div>;
+
+      element = (
+        <div>
+          <label htmlFor="username">姓名:</label>
+          <input type="text" id="username" />
+        </div>
+      );
+
+      root.render(element);
+    </script>
+  </body>
+</html>

二進制
15_React/day-1/code/5.jpeg


二進制
15_React/day-1/code/6.jpeg


+ 5 - 0
15_React/day-1/code/common.css

@@ -0,0 +1,5 @@
+.title {
+  font-size: larger;
+  font-weight: 700;
+  color: hotpink;
+}

+ 18 - 0
15_React/day-1/code/temp.html

@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+    <script src="../../babel.min.js"></script>
+    <script src="../../react.development.js"></script>
+    <script src="../../react-dom.development.js"></script>
+  </head>
+  <body>
+    <div id="root"></div>
+    <script type="text/babel">
+      const root = ReactDOM.createRoot(document.querySelector('#root'));
+    </script>
+  </body>
+</html>