Aanmaken met React
Dit aanmaakproces kan ook in andere contexten worden toegepast, bijvoorbeeld om elk type React-project aan te maken; pas in dat geval de naam en de map waarin de opdrachten worden uitgevoerd dienovereenkomstig aan.
Het uitgangspunt is dat de weblaag wordt aangemaakt, oftewel de frontend van onze Netuno-applicatie.
Daarom wordt ervan uitgegaan dat binnen de Netuno-applicatie de map website wordt aangemaakt. Dat is de standaardnaam voor de frontendlaag,
maar u kunt ook elke andere gewenste naam gebruiken.
Vereisten
Netuno moet geïnstalleerd zijn:
Vanwege de betere prestaties en andere voordelen moet Bun geïnstalleerd zijn:
Aanmaken
Om een React-applicatie binnen een Netuno-applicatie aan te maken, noemen we deze gewoonlijk website.
Ga met de terminal naar de hoofdmap van uw Netuno-applicatie, die normaal gesproken in de volgende map staat:
netuno/apps/MIJN_APP
Waarbij
MIJN_APPde naam van de Netuno-applicatie is.
Voer de opdracht uit:
bun create vite
Daarna verschijnt de vraag: Project name:
Typ website en druk op ENTER.
Daarna verschijnt de vraag: Select a framework:
Gebruik de pijltjestoetsen en druk op de pijltjestoets naar beneden tot de optie React is geselecteerd; druk vervolgens op
ENTER.
Ten slotte de volgende vraag: Select a variant:
Gebruik de pijltjestoetsen en druk op de pijltjestoets naar beneden tot de optie JavaScript is geselecteerd; druk vervolgens op
ENTER.
Deze opdracht maakt een nieuwe map met de naam 📂 website aan, waarin de frontend met React zich bevindt.
Nadat u de frontend met React hebt aangemaakt, voert u het volgende uit om de afhankelijkheden te installeren:
cd website
bun install
Open de map van uw Netuno-applicatie in uw favoriete editor (zoals VSCode, WebStorm, enz.) en
ga naar de aangemaakte map website.
Uitvoeren
Nu kunt u de frontendserver met React starten met de opdracht:
bun run dev
Hierdoor is de frontend beschikbaar op het adres http://localhost:5173/; meestal verschijnt dit adres in de terminal, of verschijnt een ander adres met een ander poortnummer in de terminal. In ieder geval volstaat het om het adres dat in de terminal wordt weergegeven in de browser te openen.
Om de uitvoering in de terminal te beëindigen, drukt u tegelijkertijd op
CTRLenC.
Afhankelijkheden installeren
Als u de frontendserver in de terminal uitvoert, dus bun run dev, wordt aanbevolen om te stoppen; druk
tegelijkertijd op CTRL en C.
We raden sterk aan de volgende NPM-pakketten te installeren, omdat ze zeer nuttig zijn voor het ontwikkelen van React-applicaties met Netuno (klik op elke link voor meer informatie over elk pakket):
Om de hierboven genoemde pakketten te installeren, voert u eenvoudig de volgende reeks opdrachten uit in de terminal:
bun add react-router
bun add antd
bun add @ant-design/icons
bun add less
bun add @netuno/service-client
Als alternatief kunt u ook alle pakketten in één keer installeren:
bun add react-router antd @ant-design/icons less @netuno/service-client
Configuraties
Na het uitvoeren van de bovenstaande opdrachten kunt u een standaardpoort forceren; ga naar 📂 website/vite.config.js
en voeg de server-configuratie als volgt toe:
export default defineConfig({
server: {
port: 3000,
strictPort: true
},
plugins: [
react()
]
})
Als u nu start met de opdracht bun run dev, wordt altijd poort 3000 gebruikt.
Less
Wijzig alle .css-bestanden in website/src naar de extensie .less.
Vergeet niet deze wijziging ook door te voeren in de JSX-code op de regels waar de
.css-bestanden worden geïmporteerd; wijzig dit naar.less.
LESS maakt een meer gestructureerde en moderne CSS-ontwikkeling mogelijk.
Aanpassen van het Ant.Design-thema
Om de kleuren van Ant.Design aan te passen, gebruikt u de component ConfigProvider in App.jsx.
Bijvoorbeeld:
import { ConfigProvider, Button } from 'antd';
...
function App() {
...
return (
<ConfigProvider theme={{ token: { colorPrimary: '#00b96b' } }}>
...
<Button type="primary">Mijn knop met aangepaste kleur</Button>
...
</ConfigProvider>
);
}
...
Zo kunt u elke stylingconfiguratie van Ant.Design aanpassen.
Donker thema
Het is ook mogelijk het donkere thema van Ant.Design te gebruiken; hiervoor hoeft u alleen de theme te importeren die de dark mode bevat
en toe te passen in de ConfigProvider:
import { ConfigProvider, Button, theme } from 'antd';
...
<ConfigProvider theme={{
token: {
colorPrimary: '#FF6500'
},
algorithm: theme.darkAlgorithm,
}}>
...
<Button type="primary">Mijn knop met aangepaste kleur</Button>
...
</ConfigProvider>
...
Herstijlen
Merk op dat u in de instellingen van de ConfigProvider hierboven eenvoudig de stijl van Ant.Design kunt wijzigen;
meer over het aanpassen van Ant.Design:
Elke component van Ant.Design heeft de mogelijke Design Token-instellingen, bijvoorbeeld bij de Buttons:
<ConfigProvider theme={{
token: {
colorPrimary: '#00b96b',
fontSize: 18,
},
components: {
Button: {
defaultBg: '#D6BD98',
defaultColor: '#1D1616',
primaryColor: '#000B58',
textTextColor: '#181C14',
}
}
}}>
...
<Button type="primary">Mijn knop met aangepaste kleur</Button>
...
</ConfigProvider>
Automatisch starten van de frontend met Netuno
Met Netuno kunt u de React-applicatie samen met het serverproces van de Netuno-applicatie starten.
Alle compilatiemeldingen van de React-applicatie worden geïntegreerd in dezelfde terminal als de Netuno-applicatie.
Hiervoor voegt u het volgende toe aan de commands-configuratie van de Netuno-applicatie in 📂 config/_development.json:
{
...
"commands": [
...
{
"path": "website",
"command": "bun run dev",
"install": "bun install",
"enabled": true
}
],
...
}
Wanneer u configuratiebestanden van de Netuno-applicatie bewerkt, moet u de server opnieuw starten zodat de nieuwe wijzigingen kunnen worden overgenomen.
Start of herstart ten slotte de server met uw Netuno-applicatie om de werking te controleren.
En nu is alles geïntegreerd in slechts één gecentraliseerde terminal, zodat u niet meerdere verspreide terminals hoeft te hebben; meer over:
CORS-configuratie (Cross-Origin Resource Sharing)
Om CORS te configureren en mogelijke fouten in de communicatie tussen de frontend en de services van de Netuno-applicatie te voorkomen, bewerkt u de configuratie van de applicatie in:
📂 config/_development.json
Controleer of de cors-configuratie al bestaat; als * in origins staat, is dat prima voor ontwikkeling
en kan het zo blijven.
Als er geen cors-configuratie is, voeg deze dan toe op basis van dit voorbeeld; het adres moet hetzelfde adres zijn als dat van de
frontend:
{
...
"cors": [
{
"enabled": true,
"origins": [ "http://localhost:3000" ]
}
],
...
}
Als
originseen*bevat, betekent dit dat elk frontendadres wordt ondersteund, bijvoorbeeld:
"origins": [ "*" ]Normaal gebruiken we*tijdens ontwikkeling.
Als deze configuratie is doorgevoerd, kunt u de gewenste API-services integreren met de frontend, zonder problemen met CORS-beveiliging.
Meer over CORS
Omgevingsvariabelen
De configuratie van omgevingsvariabelen kan worden gedefinieerd door het bestand website/.env aan te maken, met de
definities van de variabelen, bijvoorbeeld:
NODE_ENV=development
Of via de configuratie van de Netuno-applicatie, bijvoorbeeld in:
📂 config/_development.json
En door de omgevingsvariabelen te definiëren in de configuratie van de opdracht onder de parameter env, bijvoorbeeld:
{
...
"commands": [
...,
{
"env": ["NODE_ENV=development"],
"path": "website",
"command": "bun run start",
"install": "bun install",
"enabled": true
}
],
...
}