Heim Web-Frontend js-Tutorial Die Komponente „react+antd' erstellt ein vollständiges Backend (mit Code).

Die Komponente „react+antd' erstellt ein vollständiges Backend (mit Code).

Jun 06, 2018 am 11:50 AM
antd react 管理系统

Dieses Mal bringe ich Ihnen React+antd-Komponenten mit, um ein vollständiges Backend zu erstellen (mit Code). Was ist bei der Verwendung von React+antd-Komponenten zur Erstellung eines Backends zu beachten? .

Vorwort: Für diesen Artikel sind einige Grundkenntnisse in React und Redux erforderlich. Für spezifische Lernmaterialien gehen Sie bitte wissenschaftlich online.

Create-React-App-Gerüst verwenden

Informationen zur spezifischen Grundkonfiguration finden Sie unter

Demo des Managementsystems implementiert mit Antd-Komponenten, Online-Adresse

Reflexion vor der Entwicklung

1. Laden bei Bedarf

Webpack-Importfunktion für dynamisch geladene Module, Import (Parameter), der Parameter ist die Moduladresse .

Hinweis: Nach dem Import wird ein Promise-Objekt zurückgegeben.

import('/components/chart').then(mud => {
  dosomething(mod)
});
Nach dem Login kopieren

Diese Demo erstellt ein asynchrones Ladekomponenten-Bundle. Informationen zur spezifischen Verwendung finden Sie unter

class Bundle extends Component {
 constructor(props) {
   super(props);
   this.state = {
     mod: null
   };
 }
 unmount = false
 componentDidMount = () => {
  // 加载组件时,打开全局loading
  this.props.dispatch(loading(true))
  this.load(this.props)
 }
 componentWillUnmount = () => {
  this.unmount = true
 }
 
 componentWillReceiveProps(nextProps) {
   if (nextProps.load !== this.props.load) {
     this.load(nextProps)
   }
 }
 load(props) {
   if (this.state.mod) {
     return true
   }
   //注意这里,使用Promise对象; mod.default导出默认
   props.load().then((mod) => {
     if (this.unmount) {
       // 离开组件时,不异步执行setState
       this.props.dispatch(loading(false))
       return false
     }
     this.setState({
       mod: mod.default ? mod.default : mod
     }, _ => {
      // 组件加载完毕,关闭loading
      this.props.dispatch(loading(false))
     });
   });
 }
 render() {
   return this.state.mod ? this.props.children(this.state.mod) : null;
 }
}
Nach dem Login kopieren

2. Globales Laden

Mit Redux Dispatch => Reducer-Update => Mapstate-Update, Rendering in der Root-Komponente laden

Einzelheiten finden Sie in dieser Demo-Adresse src/routers/router.js – Renderfunktion

3. Routing-Objekte konfigurieren

Das Projektlayout ist wie folgt

Diese Demo verwendet router4 und das offizielle Dokument Es wird gezeigt, dass eine einzeilige Route (z. B. ein Vue-Router) kein einheitliches Konfigurationsobjekt hat. Das Verwaltungssystem dreht sich im Wesentlichen um Inhalte für die Geschäftsentwicklung, die für die Entwicklung und den Aufbau von router.config.js

<Bundle load={() => import('路径')}>
  {Comp => {
   return Comp ? <Comp /> : <p>加载中...</p>
  }}
 </Bundle>
Nach dem Login kopieren
Implementierungsideen hilfreich sind. Das äußerste Layout ist Admin, und der Inhalt wird von Admin umhüllt Sie können dies props.children verwenden, um den Inhalt in den Inhalt einzugeben. (Verwenden Sie die Bundle-Komponente, um sie asynchron zu laden und dann zum Rendern in die Komponente einzufügen.)

const routers = [
 {
  menuName: '主页',
  menuIco: 'home',
  component: 'home/home.js', // 主页
  path: '/admin/home' // 主页
 },
 {
  menuName: '用户',
  menuIco: 'user',
  children: [
   {
    menuName: '用户列表',
    component: 'user/list.js', // 主页
    path: '/admin/user/list' // 主页
   }
  ]
 },
 {
  menuName: '多级菜单',
  menuIco: 'setting',
  children: [
   {
    menuName: '多级菜单2',
    children: [
     {
      menuName: '菜单',
      component: 'user/list.js', // 主页
      path: '/admin/user/list3' // 主页
     }
    ]
   }
  ]
 },
 {
  menuName: '关于我',
  menuIco: 'smile-o',
  component: 'about/about.js', // 主页
  path: '/admin/about' // 主页
 }
]
Nach dem Login kopieren

4. Konfigurieren Sie einen allgemeinen Reduzierer

Für die Mehrpersonenentwicklung Komponenten In einigen Geschäftsszenarien müssen Verbesserungen vorgenommen werden (Studenten, die die Statusverbesserung nicht verstehen, surfen bitte wissenschaftlich im Internet)

<Admin>
  <Content { ...this.props } breadcrumb={this.state.breadcrumb}>
    {this.props.children}
  </Content>
</Admin>
// Content组件内部
render() {
  return (
    <p> 
      {this.props.children}
    </p>
  )
}
// 本demo实现,详见src/routers/router.js
<Route
 path="/admin"
 render={item => (
  <Admin {...item} { ...this.props }>
   {initRouters.map(el => this.deepItem(el, { ...this.props, ...item}))}
  </Admin>
 )}
/>
Nach dem Login kopieren

5. Verwenden Sie den withRouter Funktion, die ausgelöst wird, wenn die Seite umgeleitet wird

import otherReducers from './otherReducers'
const App = combineReducers({
  rootReducers,
  ...otherReducers // 其他需要增加的reducers
})
Nach dem Login kopieren

Wenn Sie nicht angemeldet sind, geben Sie

const newWithRouter = withRouter(props => {
  // ....
})
Nach dem Login kopieren

6 ab. Kehren Sie je nach Routenkonfiguration und Berechtigungen zum entsprechenden Menü oder Block zurück

return <Redirect to="/login" />
Nach dem Login kopieren

7 Andere Konfigurationen

7-1 Benutzerdefinierter Stil

return <Redirect to={其他} />
Nach dem Login kopieren
Verwendung: Importieren Sie

// 修改webpack.config.dev.js 和 webpack.config-prod.js 配置文件
{
  test: /\.(css|less)$/,
  // 匹配src的都自动加载css-module
  include: [/src/],
  exclude: [/theme/],
  use: [
    require.resolve('style-loader'), {
      loader: require.resolve('css-loader'),
      options: {
        importLoaders: 1,
        modules: true, // 新增对css modules的支持
        localIdentName: '[path]___[name]__[local]___[hash:base64:5]'
      }
    }, {
      loader: require.resolve('postcss-loader'),
      options: {
        // Necessary for external CSS imports to work
        // https://github.com/facebookincubator/create-react-app/issues/2677
        ident: 'postcss',
        plugins: () => [
          require('postcss-flexbugs-fixes'),
          autoprefixer({
            browsers: [
              '>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9&#39;, // React doesn&#39;t support IE8 anyway
            ],
            flexbox: &#39;no-2009&#39;
          })
        ]
      }
    }, {
      loader: require.resolve(&#39;less-loader&#39;) // compiles Less to CSS
    }
  ]
}, {
  // 不匹配node_modules,theme的都不能自动加载css-module
  test: /\.(css|less)$/,
  include: [/node_modules/,/theme/],
  use: [
    {
      loader: "style-loader"
    }, {
      loader: "css-loader",
      options: {
        importLoaders: 1
      }
    }, {
      loader: require.resolve(&#39;less-loader&#39;) // compiles Less to CSS
    }
  ]
},
Nach dem Login kopieren

direkt in App.js 7-2.

Schritt 1:

import &#39;./assets/theme/App.less&#39;
Nach dem Login kopieren

Schritt 2:

React-Hot-Loader hinzufügen /patch< zum Eintragswert von webpack.config.js

Schritt 3:

Hot auf true in webpackDevServer.config.js setzen

Schritt 4: Reagieren auf hinzufügen Plugins in babel-loader in webpack.config.dev.js -hot-loader/babel

// 安装react-hot-loader 
npm install --save-dev react-hot-loader
Nach dem Login kopieren

Schritt 5:

index.js neu schreiben, App-Mount

{
  test: /\.(js|jsx|mjs)$/,
  include: paths.appSrc,
  loader: require.resolve(&#39;babel-loader&#39;),
  options: {
    // This is a feature of `babel-loader` for webpack (not Babel itself). It
    // enables caching results in ./node_modules/.cache/babel-loader/ directory for
    // faster rebuilds.
    cacheDirectory: true,
    plugins: [
      &#39;react-hot-loader/babel&#39;
    ]
  }
},
Nach dem Login kopieren

7 -3. Lokales Browsen

import { AppContainer } from &#39;react-hot-loader&#39;
const render = Component => {
  ReactDOM.render(
    <AppContainer>
      <Component></Component>
    </AppContainer>,
    document.getElementById('root')
  )
}
render(App)
if(module.hot) {
  module.hot.accept('./App',() => {
    render(App);
  });
}
Nach dem Login kopieren
direkt zu package.json hinzufügen Postscript: Einblicke in die Verwendung von React und Vue

React ist funktionale Programmierung, Codeschwierigkeit, Lernkurve, Anmaßung Index, gemeinschaftliche ökologische Vielfalt ist etwas höher als Vue.

Vue bietet eine große Anzahl von Anweisungen, um die Schwierigkeit der Entwicklung zu verringern, und eine detaillierte und vollständige Dokumentation erleichtert den Einstieg.

React bietet weniger APIs, sodass die Funktionen von Geschäftsszenarien selbst implementiert werden müssen.

Vue ist für kleine und mittlere Projekte geeignet. und einzelne Soldaten und eine kleine Anzahl von Personen können schnell zusammenarbeiten.

React eignet sich für Großprojekte und die Zusammenarbeit mit mehreren Personen.

Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall gelesen haben Weitere spannende Inhalte finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Analyse der VUE-Nutzung

Wie man Vue+Webpack verwendet, um asynchrones Laden durchzuführen

Das obige ist der detaillierte Inhalt vonDie Komponente „react+antd' erstellt ein vollständiges Backend (mit Code).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Leitfaden zur React-Front-End- und Back-End-Trennung: So erreichen Sie die Entkopplung und unabhängige Bereitstellung von Front-End und Back-End Leitfaden zur React-Front-End- und Back-End-Trennung: So erreichen Sie die Entkopplung und unabhängige Bereitstellung von Front-End und Back-End Sep 28, 2023 am 10:48 AM

React-Leitfaden zur Front-End- und Back-End-Trennung: So erreichen Sie die Front-End- und Back-End-Entkopplung und die unabhängige Bereitstellung. Es sind spezifische Codebeispiele erforderlich. In der heutigen Webentwicklungsumgebung ist die Front-End- und Back-End-Trennung zu einem Trend geworden. Durch die Trennung von Front-End- und Back-End-Code kann die Entwicklungsarbeit flexibler und effizienter gestaltet und die Zusammenarbeit im Team erleichtert werden. In diesem Artikel wird erläutert, wie Sie mithilfe von React eine Front-End- und Back-End-Trennung erreichen und so die Ziele der Entkopplung und unabhängigen Bereitstellung erreichen. Zuerst müssen wir verstehen, was Front-End- und Back-End-Trennung ist. Im traditionellen Webentwicklungsmodell sind Front-End und Back-End gekoppelt

So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask Sep 27, 2023 am 11:09 AM

So erstellen Sie mit React und Flask einfache und benutzerfreundliche Webanwendungen. Einführung: Mit der Entwicklung des Internets werden die Anforderungen an Webanwendungen immer vielfältiger und komplexer. Um den Anforderungen der Benutzer an Benutzerfreundlichkeit und Leistung gerecht zu werden, wird es immer wichtiger, moderne Technologie-Stacks zum Aufbau von Netzwerkanwendungen zu verwenden. React und Flask sind zwei sehr beliebte Frameworks für die Front-End- und Back-End-Entwicklung, und sie arbeiten gut zusammen, um einfache und benutzerfreundliche Webanwendungen zu erstellen. In diesem Artikel erfahren Sie, wie Sie React und Flask nutzen

So erstellen Sie eine zuverlässige Messaging-App mit React und RabbitMQ So erstellen Sie eine zuverlässige Messaging-App mit React und RabbitMQ Sep 28, 2023 pm 08:24 PM

So erstellen Sie eine zuverlässige Messaging-Anwendung mit React und RabbitMQ Einführung: Moderne Anwendungen müssen zuverlässiges Messaging unterstützen, um Funktionen wie Echtzeitaktualisierungen und Datensynchronisierung zu erreichen. React ist eine beliebte JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen, während RabbitMQ eine zuverlässige Messaging-Middleware ist. In diesem Artikel wird erläutert, wie Sie React und RabbitMQ kombinieren, um eine zuverlässige Messaging-Anwendung zu erstellen, und es werden spezifische Codebeispiele bereitgestellt. RabbitMQ-Übersicht:

React Router-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung React Router-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Sep 29, 2023 pm 05:45 PM

ReactRouter-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Mit der Popularität von Single-Page-Anwendungen ist das Front-End-Routing zu einem wichtigen Bestandteil geworden, der nicht ignoriert werden kann. Als beliebteste Routing-Bibliothek im React-Ökosystem bietet ReactRouter umfangreiche Funktionen und benutzerfreundliche APIs, wodurch die Implementierung des Front-End-Routings sehr einfach und flexibel ist. In diesem Artikel wird die Verwendung von ReactRouter vorgestellt und einige spezifische Codebeispiele bereitgestellt. Um ReactRouter zuerst zu installieren, benötigen wir

So erstellen Sie Echtzeit-Datenverarbeitungsanwendungen mit React und Apache Kafka So erstellen Sie Echtzeit-Datenverarbeitungsanwendungen mit React und Apache Kafka Sep 27, 2023 pm 02:25 PM

So verwenden Sie React und Apache Kafka zum Erstellen von Echtzeit-Datenverarbeitungsanwendungen. Einführung: Mit dem Aufkommen von Big Data und Echtzeit-Datenverarbeitung ist die Erstellung von Echtzeit-Datenverarbeitungsanwendungen für viele Entwickler zum Ziel geworden. Die Kombination von React, einem beliebten Front-End-Framework, und Apache Kafka, einem leistungsstarken verteilten Messaging-System, kann uns beim Aufbau von Echtzeit-Datenverarbeitungsanwendungen helfen. In diesem Artikel wird erläutert, wie Sie mit React und Apache Kafka Echtzeit-Datenverarbeitungsanwendungen erstellen

So schreiben Sie ein einfaches Online-Kreditverwaltungssystem mit PHP So schreiben Sie ein einfaches Online-Kreditverwaltungssystem mit PHP Sep 27, 2023 pm 12:49 PM

Um ein einfaches Online-Ausleihverwaltungssystem mit PHP zu schreiben, sind spezifische Codebeispiele erforderlich. Einführung: Mit dem Aufkommen des digitalen Zeitalters haben auch die Bibliotheksverwaltungsmethoden enorme Veränderungen erfahren. Traditionelle manuelle Erfassungssysteme werden nach und nach durch Online-Kreditverwaltungssysteme ersetzt. Online-Ausleihverwaltungssysteme verbessern die Effizienz erheblich, indem sie den Prozess der Ausleihe und Rückgabe von Büchern automatisieren. In diesem Artikel wird erläutert, wie Sie mit PHP ein einfaches Online-Kreditverwaltungssystem schreiben, und es werden spezifische Codebeispiele bereitgestellt. 1. Analyse der Systemanforderungen, bevor mit der Entwicklung des Online-Kreditverwaltungssystems begonnen wird

PHP, Vue und React: Wie wählt man das am besten geeignete Frontend-Framework aus? PHP, Vue und React: Wie wählt man das am besten geeignete Frontend-Framework aus? Mar 15, 2024 pm 05:48 PM

PHP, Vue und React: Wie wählt man das am besten geeignete Frontend-Framework aus? Angesichts der kontinuierlichen Weiterentwicklung der Internettechnologie spielen Front-End-Frameworks eine wichtige Rolle bei der Webentwicklung. PHP, Vue und React sind drei repräsentative Frontend-Frameworks, jedes mit seinen eigenen einzigartigen Eigenschaften und Vorteilen. Bei der Auswahl des zu verwendenden Frontend-Frameworks müssen Entwickler eine fundierte Entscheidung treffen, die auf den Projektanforderungen, Teamfähigkeiten und persönlichen Vorlieben basiert. In diesem Artikel werden die Eigenschaften und Verwendungsmöglichkeiten der drei Front-End-Frameworks PHP, Vue und React verglichen.

Integration von Java-Framework und Front-End-React-Framework Integration von Java-Framework und Front-End-React-Framework Jun 01, 2024 pm 03:16 PM

Integration von Java-Framework und React-Framework: Schritte: Richten Sie das Back-End-Java-Framework ein. Projektstruktur erstellen. Konfigurieren Sie Build-Tools. Erstellen Sie React-Anwendungen. Schreiben Sie REST-API-Endpunkte. Konfigurieren Sie den Kommunikationsmechanismus. Praxisfall (SpringBoot+React): Java-Code: RESTfulAPI-Controller definieren. Reaktionscode: Rufen Sie die von der API zurückgegebenen Daten ab und zeigen Sie sie an.

See all articles