使用 JSX 书写标签语言

简介: 使用 JSX 书写标签语言

SX 是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签。虽然还有其它方式可以编写组件,但大部分 React 开发者更喜欢 JSX 的简洁性,并且在大部分代码库中使用它。

JSX: 将标签引入 JavaScript

网页是构建在 HTML、CSS 和 JavaScript 之上的。多年以来,web 开发者都是将网页内容存放在 HTML 中,样式放在 CSS 中,而逻辑则放在 JavaScript 中 —— 通常是在不同的文件中!页面的内容通过标签语言描述并存放在 HTML 文件中,而逻辑则单独存放在 JavaScript 文件中。

将一个按钮的渲染逻辑和标签放在一起可以确保它们在每次编辑时都能保持互相同步。反之,彼此无关的细节是互相隔离的,例如按钮的标签和侧边栏的标签。这样我们在修改其中任意一个组件时会更安全。

每个 React 组件都是一个 JavaScript 函数,它会返回一些标签,React 会将这些标签渲染到浏览器上。React 组件使用一种被称为 JSX 的语法扩展来描述这些标签。JSX 看起来和 HTML 很像,但它的语法更加严格并且可以动态展示信息。了解这些区别最好的方式就是将一些 HTML 标签转化为 JSX 标签。

将 HTML 转化为 JSX

假设你现在有一些(完全有效的)HTML 标签:

<h1>海蒂·拉玛的待办事项</h1>
<img 
  src="https://i.imgur.com/yXOvdOSs.jpg" 
  alt="Hedy Lamarr" 
  class="photo"
>
<ul>
    <li>发明一种新式交通信号灯
    <li>排练一个电影场景
    <li>改进频谱技术
</ul>

而现在想要把这些标签迁移到组件中:

export default function TodoList() {
  return (
    // ???
  )
}

如果直接复制到组件中,并不能正常工作:

export default function TodoList() {
  return (
    // 这不起作用!
    <h1>海蒂·拉玛的待办事项</h1>
    <img 
      src="https://i.imgur.com/yXOvdOSs.jpg" 
      alt="Hedy Lamarr" 
      class="photo"
    >
    <ul>
      <li>发明一种新式交通信号灯
      <li>排练一个电影场景
      <li>改进频谱技术
    </ul>
  );
}
Unable to establish connection with the sandpack bundler. Make sure you are online or try again later. If the problem persists, please report it via email or submit an issue on GitHub.


相关文章
|
7月前
|
前端开发 JavaScript
jsx的语法规则
jsx的语法规则
|
4月前
|
JavaScript 前端开发
JavaScript 书写位置
JavaScript 书写位置
37 1
|
7月前
|
前端开发
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
|
7月前
|
缓存 JavaScript 前端开发
JavaScript的书写位置。
JavaScript的书写位置。
|
小程序
uniapp使用scss 嵌套语法
uniapp使用scss 嵌套语法
333 1
|
安全 JavaScript 前端开发
JavaScript 中的模板字面量与标签模板
在 JavaScript 中,模板字面量(Template Literals)和标签模板(Tagged Templates)是两种用于处理字符串的特殊方式。它们分别提供了更灵活和强大的字符串处理能力,让字符串拼接、格式化和转义变得更加方便。
226 0
|
7月前
|
XML 前端开发 JavaScript
jsx的语法规则?
jsx的语法规则?
|
7月前
|
JavaScript 前端开发
|
7月前
|
JavaScript 前端开发
JavaScript变量的小驼峰命名法
JavaScript中变量的小驼峰命名法,一般指的是JavaScript的变量的名称或函数的名称采用大小写字母搭配的方式进行命名,比如:folowerName、studentAge,其中N和A是大写的。
93 2
|
前端开发
前端学习案例-jsx的绑定的内联写法
前端学习案例-jsx的绑定的内联写法
63 0
前端学习案例-jsx的绑定的内联写法