31
loading...
This website collects cookies to deliver better user experience
yarn add -D react react-dom
var esbuildLoader = config.module.rules.find(rule => rule.use && rule.use.loader == "esbuild-loader")
if (esbuildLoader) {
esbuildLoader.use.options.loader = "jsx"
}
var config = require("./config/webpack.defaults.js")
module.exports = config
./frontend/javascript/components
HelloWorld.js
and add the following code...# in ./frontend/javascript/components/HelloWorld.js
import React from "react"
import ReactDOM from "react-dom"
export const HelloWorld = () => {
const hello = "Hello"
return <p>{hello} World!</p>
}
export const renderInDOM = () => {
console.log("about to render!")
ReactDOM.render(<HelloWorld />, document.querySelector("#root"))
}
# This snippet goes in your `./frontend/javascript/index.js`
import { renderInDOM } from "./components/HelloWorld"
window.addEventListener("DOMContentLoaded", () => {
renderInDOM()
})
renderInDOM
function from the component file and<div id="root"></div>
Greeting.js
. Place the following# In ./frontend/javascript/components/Greeting.js
import React from "react"
import ReactDOM from "react-dom"
export const Greeting = () => {
var myDate = new Date();
var hours= myDate.getHours();
var greet;
if (hours < 12)
greet = "morning";
else if (hours >= 12 && hours <= 17)
greet = "afternoon";
else if (hours >= 17 && hours <= 24)
greet = "evening";
return <span>Good {greet}!</span>
}
export const renderGreeting = () => {
console.log("dynamic Greeting is rendering!")
ReactDOM.render(<Greeting />, document.querySelector("#greeting"))
}
# In ./frontend/javascript/index.js
import { renderGreeting } from "./components/Greeting"
window.addEventListener("DOMContentLoaded", () => {
renderGreeting()
})
<div id="greeting"></div>