Inhalt
- Welches Werkzeug wird benötigt?
- Einrichten von ECMA6, ReactJS und der Küchenspüle
- Fast dort!
- Page.js
- Page.scss
- Home.js
- Home.scss
- About.js
- About.scss
- Missing.js
- Missing.scss
- Sind wir schon da?
- Danke fürs Lesen!
Nick spielt mehrere Tabletop-RPGs und Videospiele und schreibt Fantasy-Fiction.
Welches Werkzeug wird benötigt?
Der Einstieg in ReactJS ist nicht so einfach wie die Arbeit mit einem Framework wie jQuery oder ExtJS. Es sind mehrere Tools und einige Softwarepakete erforderlich, um eine ReactJS-Site mit einem Web API 2-Backend zu erstellen.
Erstens die IDEs. Ja, es gibt zwei, die ich für ein einzelnes Projekt verwende! Ich verwende Visual Studio 2015 (Sie können Visual Studio Community Edition verwenden) zum Erstellen des Basis-Web-API-2-Projekts. Dann verwende ich Visual Studio Code, um mit ReactJS zu arbeiten. Es verfügt über einige integrierte Funktionen, die das Arbeiten mit React einfacher machen als das Arbeiten mit Visual Studio 2015 (scheint mir auch seltsam!). Sie können beide hier herunterladen.
Nachdem Sie die beiden IDEs eingerichtet haben, erstellen Sie eine neue ASP.NET-Webanwendung in Visual Studio. In diesem Beispiel rufe ich das Projekt 'MyProject' auf und speichere es in 'C: Projects '.
Machen Sie es zu einem leeren Projekt und fügen Sie WebAPI-Ordner und -Referenzen hinzu.
Sobald das Projekt eingerichtet und in Visual Studio angezeigt wird, öffnen Sie Visual Studio-Code, gehen Sie zu Datei> Ordner öffnen und navigieren Sie zu 'C: Projects MyProject'. Dadurch werden Sie in den Stammordner über dem Ordner verschoben, in dem Ihre Projektdateien vorhanden sind (im ausgewählten Ordner wird ein Ordner "MyProject" angezeigt).
Dies ist der Teil, für den ich eine Weile gebraucht habe, um ihn vollständig zu erfassen, und ich habe möglicherweise immer noch keinen vollständigen Überblick über den Prozess! Ich kann Ihnen jedoch die Schritte zur Verfügung stellen, mit denen Sie in die richtige Richtung weisen. Zuerst müssen Sie zu https://nodejs.org gehen und NodeJS herunterladen. Ich habe die aktuelle Version heruntergeladen, aber Sie können die empfohlene Version sicher herunterladen. Dies wird installiert NodeJS und der Knotenpaket-Manager, die wir stark nutzen werden. Gehen Sie als Nächstes zurück zu Visual Studio Code und drücken Sie [Strg + `] (das ist das hintere Häkchen, kein einfaches Anführungszeichen), um das Terminalfenster aufzurufen. Hier beginnt die Magie! Wir werden viele Anrufe bei der Knotenpaket-Manager Verwenden Sie den Befehl 'npm' im Terminalfenster. Drücken Sie die [Eingabetaste], nachdem Sie die folgenden Befehle in das Terminalfenster eingegeben haben. Mit den ersten beiden Befehlen wird WebPack eingerichtet, mit dem unser nicht unterstützter Code (ECMA6, JSX usw.) in unterstütztes Javascript übertragen wird. npm install webpack -g npm link webpack Als nächstes werden wir unser Projekt initialisieren, damit es mit npm-Paketen arbeiten kann. Dadurch werden eine Datei package.json und ein Ordner node_modules für unser Projekt erstellt. npm init Als nächstes werden wir alle Abhängigkeiten installieren, die wir benötigen, um unsere Anwendung entwickeln zu können. Wir benötigen Babel und mehrere Add-Ons, die als Loader bezeichnet werden, damit WebPack alle diese Dateien zur Verwendung verarbeitet und am Ende ordentlich organisiert. Sie können dies kopieren und in das Terminalfenster einfügen. Auf diese Weise können wir mit ECMA6, SASS, JSON und Images arbeiten. npm install --save-dev Babel-Loader Babel-Cli Babel-Preset-neueste Babel-Preset-Stufe-2 Babel-Preset-Reagieren Style-Loader CSS-Loader Autoprefixer-Loader Sass-Loader Node-Sass JSON-Loader URL- Loader extract-text-webpack-plugin@^2.0.0-rc.3 Als Nächstes müssen Sie in Visual Studio Code eine neue Datei mit dem Namen '.babelrc' erstellen (sie beginnt mit einem '.'). In diese Datei geben Sie Folgendes ein, zusammen mit allen zusätzlichen Voreinstellungen, die Sie möglicherweise für Babel benötigen. {"Voreinstellungen": ["Neueste", "Stufe 2", "Reagieren"]} Jetzt müssen wir die clientseitigen Abhängigkeiten installieren, die wir für unser Projekt benötigen. Dadurch kann unsere Anwendung das ReactJS-Framework verwenden und über AJAX-Funktionen verfügen. npm install --save React React-Dom React-Router Axios Jetzt müssen wir eine Datei mit dem Namen 'webpack.config.js' erstellen und den folgenden Code einfügen. Dies sagt WebPack, wie mit unseren Dateien gearbeitet werden soll. Wir werden angeben, dass unsere verarbeiteten Dateien in "C: Projects MyProject MyProject content " abgelegt werden und dass diese Dateien "bundle.js" und "bundle.css" heißen. var webpack = require ("webpack"); var ExtractTextPlugin = require ("extract-text-webpack-plugin"); module.exports = {entry: "./src/index.js", Ausgabe: {path: "MyProject / content", Dateiname: "bundle.js", publicPath: "/ content /"}, module: {loaders: [{test: /.js$/, exclude: / (node_modules) /, loader: 'babel-loader', query: {presets: ["latest", "stage-2", "react"]}}, {test: /.css$/, loader: ExtractTextPlugin.extract ({fallback: 'style-loader', benutze: 'css-loader! autoprefixer-loader'})}, {test: /.scss$/, loader: ExtractTextPlugin.extract ({fallback: 'style-loader', benutze: 'css-loader! autoprefixer-loader! sass-loader'})}, test: /.(jpg]}, plugins: [new ExtractTextPlugin ( "bundle.css")]};
Wütend! Nachdem dies alles erledigt ist, müssen wir jetzt unsere Ordnerstruktur in unserem Projekt einrichten, um unsere Dateien aufzunehmen. Erstellen Sie im Projektordner 'C: Project MyProject MyProject ' einen 'Content'-Ordner. Hier werden bundle.js und bundle.css hingehen. Erstellen Sie im selben Ordner eine index.html-Datei mit den folgenden Angaben. ! DOCTYPE html> html> head> title> Sampe Site / title> link rel = "stylesheet" type = "text / css" href = "content / bundle.css"> / head> body> div id = "reaktionscontainer "> / div> script src =" content / bundle.js "> / script> / body> / html> Erstellen Sie im Stammordner 'C: / Projects / MyProject' einen 'src'-Ordner. Hier werden alle Ihre Komponenten und Stile abgelegt. Erstellen Sie im Ordner "src" einen Ordner "components", einen Ordner "images" und einen Ordner "styles". Erstellen Sie im Ordner 'src' eine Datei 'index.js'. Dies ist der Einstiegspunkt in Ihre Bewerbung. importieren Reagieren von 'reagieren'; ReactDOM aus 'react-dom' importieren; Seite aus './components/Page' importieren; import Missing from './components/Missing'; {Router, Route, HashHistory} aus 'React-Router' importieren; window.React = React; ReactDOM.render (Router history = {hashHistory}> Routenpfad = "/" component = {Page} /> Routenpfad = "Home" component = {Page} /> Routenpfad = "About" component = {Page} /> Route path = " *" component = {Missing} /> / Router>, document.getElementById ('react-container')); Fügen Sie beim Erstellen von Komponenten die Datei *. Js zum Ordner 'components' und die Datei *. Scss zum Ordner 'styles' hinzu. Wir werden vier Komponenten erstellen: Seite, Startseite, Info und Vermisst. importieren Reagieren von 'reagieren'; {Link} von 'React-Router' importieren; Home von './Home' importieren; Importieren von About './About'; Import Missing from './Missing'; import '../styles/Page.scss'; Klassenseite erweitert React.Component {Konstruktor (Requisiten) {Super (Requisiten); this.getNavActions = this.getNavActions.bind (this); this.getNavAction = this.getNavAction.bind (this); } state = {sectionName: 'Home', activeAction: 0, activeComponent: Home />}; handleNavAction (Aktion) {try {var act = this.getNavAction (Aktion); if (! act) {act = {activeAction: -1, sectionName: 'Missing', activeComponent: Missing />}; } if (this.state.sectionName === act.sectionName) {return; } this.setState (act); } catch (ex) {}}; getNavActions () {return [{activeAction: 0, sectionName: 'Home', activeComponent: Home />}, {activeAction: 1, sectionName: 'About', activeComponent: About />},]; }; getNavAction (Wert, useAction = true) {var action = null; if (useAction) {action = this.getNavActions (). find (x => x.activeAction == value); } else {action = this.getNavActions (). find (x => x.sectionName === value); } if (! action) {action = {activeAction: -1, sectionName: value, activeComponent: Missing />}; } return action; }; componentWillMount () {var section = this.props.location.pathname.replace ('/', ''); if (section == '') {section = 'Home'; } this.setState (this.getNavAction (section, false)); }; render () {return (div className = "Seite"> div> Link zu = "/ Home" onClick = {this.handleNavAction.bind (this, 0)}> Home / Link> | Link zu = "/ About" onClick = {this.handleNavAction.bind (this, 1)}> Info / Link> | Link zu = "/ BadLink" onClick = {this.handleNavAction.bind (this, -1)}> Bad Link / Link> / div> {this.state.activeComponent} / div>); }; }; Standard-Seite exportieren;
.Seite {Hintergrundfarbe: Silber; }}
importieren Reagieren von 'reagieren'; import '../styles/Home.scss'; const Home = () => {return (div className = "Home"> Dies ist die Home-Komponente / div>); }; Standard-Startseite exportieren;
.Home {Hintergrundfarbe: Silber; }}
importieren Reagieren von 'reagieren'; import '../styles/About.scss'; const About = () => {return (div className = "About"> Dies ist die About-Komponente / div>); }; Standard exportieren Info;
Über {Hintergrundfarbe: Silber; }}
importieren Reagieren von 'reagieren'; import '../styles/Missing.scss'; const Missing = () => {return (div className = "Missing"> Die angeforderte URL kann nicht gefunden werden. / div>); }; Standard exportieren Fehlend;
.Missing {Hintergrundfarbe: Silber; }} Sobald dies alles vorhanden ist, sollte Ihre Dateistruktur wie in der Abbildung unten aussehen. Geben Sie nun im Terminalfenster von Visual Studio Code 'webpack' ein, und Ihre Dateien sollten kompiliert und im Ordner 'C: Projects MyProject Myproject content ' als 'bundle.js' und 'bundle.css' abgelegt werden. Ja! Jetzt müssen Sie nur noch Ihre Anwendung in Visual Studio (nicht in Code) ausführen, und Ihre index.html sollte drei Links und Text enthalten, alle mit silbernem Hintergrund. Sie können auf die Links klicken, um von "Startseite" zu "Info" und dann zu einem fehlerhaften Link mit dem Namen "Fehlerhafter Link" zu gelangen, um die fehlende Komponente zu demonstrieren. Sie werden die URL in der Adressleiste für diese Enden in # / Home, # / About und # / BadLink bemerken. So funktioniert die clientseitige MVC von React-Router. Es wird eine einseitige App erstellt, die noch navigierbare Links enthält.
Einrichten von ECMA6, ReactJS und der Küchenspüle
Fast dort!
Geben Sie in 'index.js' Folgendes ein und ändern Sie Ihre Routen nach Bedarf.Page.js
Page.scss
Home.js
Home.scss
About.js
About.scss
Missing.js
Missing.scss
Sind wir schon da?