尝试使用ES模块版React

使用skypack.dev提供的ES模块版React,您可以在浏览器中动态加载并显示React模块。

可以通过在现有的 React Formula 页面上添加 React 的方式来实现相同的功能,但由于 React 的功能全局公开,使用 ES 模块版的步骤更值得关注,因此我们创建了这个使用 ES 模块版的步骤。

特点

    • htmlファイル単独でReactを実行することができます

 

    • 単独のhtmlファイルに記載してあるので、エクスプローラーからダブルクリックで実行できます(httpサーバはなくても動きます)

 

    • jsxが使えないので、あまり実用的ではないです・・・(トランスパイルしていないので)

⇒babel-standaloneで動的にトランスパイルするコードもつけました

点击按钮即可进行计数的示例样本。

经常见到的非常简单的示例程序现在可以独立运行在HTML文件中。

img1.png
<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <title>React jsx-esm-standalone</title>
  <script type="module">
    // CDN経由でReactを読み込む(ESModuleであればブラウザから直接利用可能)
    import React, { useState } from "https://cdn.skypack.dev/react";
    import ReactDOM from "https://cdn.skypack.dev/react-dom";

    const Counter = () => {
      const [count, setCount] = useState(0);
      const handleClick = () => setCount((n) => n + 1);
      return (
        // jsxが使えないのでReact.createElement()を直接呼び出す
        React.createElement(React.Fragment, null,
          React.createElement("div", null, "Count: ", count),
          React.createElement("button", {onClick: handleClick}, "Increment"))
      );
    };
    ReactDOM.render(React.createElement(Counter), document.getElementById('app'));
  </script>
</head>
<body>
  <div id="app"></div>
</body>
</html>

使用babel-standalone动态转译,使得能够使用JSX。

由于将

广告
将在 10 秒后关闭
bannerAds