這篇筆記主要整理自:官方文件 JavaScript in JSX with Curly Braces
把要寫 JS 的地方用大括號 {} 包住!
文件說:「Curly braces mean we are about to reference a JS variable or expression」,所以在 {} 中我們可以放:
export default function Avatar() {
  const avatar = 'https://i.imgur.com/7vQD0fPs.jpg';
  const description = 'Gregorio Y. Zara';
  return (
    <img
      className="avatar"
      src={avatar}
      alt={description}
    />
  );
}
export default function Sum() {
  function sum(a, b) {
    return a + b
  }
  return (
    <h1>Sum: {sum(3, 4)}</h1>
  );
}

<h1> 的 tag 裡export default function Title() {
  const name = "Kim"
  return (
    <h1>{name}'s TodoList</h1>
  );
}
⚠️ 注意:有些型別的值不會如我們所預期的顯示
export default function Avatar() {
  const avatar = 'https://i.imgur.com/7vQD0fPs.jpg';
  const description = 'Gregorio Y. Zara';
  return (
    <img
      className="avatar"
      src={avatar}
      alt={description}
    />
  );
}
⚠️ 注意:不需要寫成src="{avatar}",這樣代表的是要擺入{avatar}的字串
⚠️ 當 props value 為字串型別時,按照道理也可以寫成這樣alt={"string"},但通常(我自己)都會直接省略大括號alt="string"
初次在 JSX 撰寫 Object 還滿容易搞混的,就留意外層的大括號是為了讓 JS 可以寫在 JSX 中,而內層的大括號是 Object 本身就有的,常見的情境會發生在 inline CSS styles:留意 style props 為帶入 Object!
export default function TodoList() {
  return (
    <ul style={{
      backgroundColor: 'black',
      color: 'pink'
    }}>
      <li>Check email</li>
      <li>Buy tissue</li>
    </ul>
  );
}
由於自己目前不太常會在 React 使用到 inline CSS styles,又恰巧看到有人分享不能在裡面使用 pseudo class/element,我自己在還沒有多方查清的狀態下不敢肯定(礙於現階段的規劃,暫時就沒有再去深挖),但有找到別人分享可以做出 ::after 這類偽元素的寫法,先一併分享在此,未來有遇到此狀況會持續探索相關知識,也歡迎有相關經驗或知識的前輩留言分享交流:)
➡️ CSS pseudo elements in React
以下為官方文件的 Recap,不做翻譯,只畫重點
= in attributes.{{ and }} is not special syntax: it’s a JavaScript object tucked inside JSX curly braces.以上,有任何想法或文內有誤、不清楚歡迎提出,謝謝大家 🙏🏻
.
筆者小記:很難不愛 JSX!
.
前陣子剛好遇到 Bootcamp 正在開發相較以往大型的專案,每天都在努力開發,所以就停更 React 筆記一陣子,之後會繼續努力產出的!在此也附上完成該專案的反思心得文,以茲證明(?)