Maison >interface Web >js tutoriel >Qu'est-ce que réagir-dva ?
Dans React, dva est une solution de flux de données basée sur Redux et Redux-saga. Afin de simplifier l'expérience de développement, dva intègre également React-Router et Fetch, il peut donc également être compris comme. un cadre d'application léger.
Cette méthode convient à toutes les marques d'ordinateurs.
introduction de dva
adresse du site officiel de dva : https://dvajs.com/
dva est un framework d'application d'une seule page lancé par Ant Financial, qui encapsule Redux, React-Router et Redux-Saga au niveau supérieur. redux-saga est un middleware utilisé pour gérer les opérations asynchrones des applications redux. redux-saga rassemble toute la logique des opérations asynchrones en un seul endroit pour un traitement centralisé en créant des sagas. Il peut être utilisé pour remplacer le middleware redux-thunk
Le projet React introduit Dva
Introduction
Préparer
npm install dva —save
index.js
import dva from ‘dva’; import createHistory from ‘history/createHashHistory’; //1.Initialize const app = dva({ history: createHistory(), }); //2.Plugins //app.use({}); //3.Model //app.model(require(‘./models/app’).default); //4.Router app.router(require(‘./router’).default); //5.Start app.start(‘#root’);
router.js
import React from ‘react’; import { Router, Route, Switch } from ‘dva/router’; import App from ‘./containers/App’; import{ Account, Articles, Channels, Editor } from ‘./containers’; const { ArticleList } = Articles; const RouterConfig = (({ history }) => ( <routerhistory> <switch> <route> <indexroute></indexroute> <route></route> <route></route> <route></route> <route></route> </route> </switch> )); export default RouterConfig;</routerhistory>
Pour plus de configuration de routage, veuillez vous référer à la documentation officielle de React-Router
Problème résoluRedémarrez le projet une fois la configuration terminée. Vérifiez l'effet de la page comme suit :
Il s'avère que la partie conteneur est rendue avec succès, mais la page correspondant au sous-projet. -route (la valeur par défaut est Account) n'est pas rendue. En regardant à nouveau la console, une erreur est signalée
Warning: Please use `require(“history”).createHashHistory` instead of `require(“history/createHashHistory”)`. Support for the latter will be removed in the next major release.Trouvez le même problème dans. dva, et suivez les instructions pour le changer au format suivant
const createHistory = require(‘history’).createBrowserHistory;2. Il s'agit ensuite d'un avertissement concernant les problèmes de routage :
Warning: You should not use <route> and <route> in the same route; <route> will be ignored</route></route></route>
React-router 4.0 et supérieur. Les versions ne recommandent plus d'utiliser le routage imbriqué comme indiqué ci-dessous.
<route> <route></route> </route>correspond au passage direct à l'imbrication de composants (notez que / doit être ajouté au chemin du sous-routage
<app> <route></route> </app>). Après l'avoir modifié, ces deux avertissements disparaîtront. 3. Logiquement, le composant Compte sera affiché par défaut à la saisie de l'application (car IndexRoute est configuré), et lorsque le fichier est modifié et que la page est affichée. rafraîchie, la page signale directement une erreur, comme suit :
Par Cette supposition est qu'il y a un problème avec la configuration du routage de la page J'ai recherché des informations pertinentes (react-filling. les pièges du rapport d'erreurs de React-Router après l'actualisation) et j'ai découvert que cela s'est avéré être un problème lors de l'utilisation de BrowserHistory
HashHistory. //const createHistory = require(‘history’).createBrowserHistory;
const createHistory = require(‘history’).createHashHistory;
Redémarrez le projet, essayez de changer d'itinéraire et constatez que tout est normal.
Vous pouvez modifier dva dans la page plus tard. L'utilisation du modèle et du réducteur dans dva est relativement simple, essayez-le selon le document, je ne les décrirai pas un par un ici. .
import createHistory from ‘history/createHashHistory’;
createHashHistory
Pour plus de connaissances liées à la programmation, veuillez visiter : Introduction à la programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!