You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/7/en/part7e.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -254,7 +254,7 @@ However, MVC architecture is not usually mentioned when talking about React appl
254
254
255
255
Because both React and [Flux](https://facebook.github.io/flux/docs/in-depth-overview) were created at Facebook, one could say that using React only as a UI library is the intended use case. Following the Flux architecture adds some overhead to the application, and if we're talking about a small application or prototype, it might be a good idea to use React "wrong", since [over-engineering](https://en.wikipedia.org/wiki/Overengineering) rarely yields an optimal result.
256
256
257
-
Part 6 [last chapter](/part6/react_query_use_reducer_ja_contex) covers the newer trends of state management in React. React's hook functions <i>useReducer</i> and <i>useContext</i> provide a kind of lightweight version of Redux. <i>React Query</i>, on the other hand, is a library that solves many of the problems associated with handling state on the server, eliminating the need for a React application to store data retrieved from the server directly in frontend state.
257
+
Part 6 [last chapter](/en/part6/react_query_use_reducer_and_the_context) covers the newer trends of state management in React. React's hook functions <i>useReducer</i> and <i>useContext</i> provide a kind of lightweight version of Redux. <i>React Query</i>, on the other hand, is a library that solves many of the problems associated with handling state on the server, eliminating the need for a React application to store data retrieved from the server directly in frontend state.
Copy file name to clipboardExpand all lines: src/content/7/es/part7d.md
+16-38Lines changed: 16 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -738,20 +738,17 @@ Guardemos el siguiente contenido en el archivo <i>db.json</i>:
738
738
}
739
739
```
740
740
741
-
742
741
Nuestro objetivo es configurar la aplicación con webpack de tal manera que, cuando se use localmente, la aplicación use el servidor json disponible en el puerto 3001 como su backend.
743
742
743
+
El archivo empaquetado se configurará para usar el backend disponible en la URL <https://notes2023.fly.dev/api/notes>.
744
744
745
-
El archivo empaquetado se configurará para usar el backend disponible en la URL <https://blooming-atoll-75500.herokuapp.com/api/notes>.
746
-
747
-
748
-
Instalaremos <i>axios</i>, iniciaremos el json-server y luego realizaremos los cambios necesarios en la aplicación. Con el fin de cambiar las cosas, obtendremos las notas del backend con nuestro [hook personalizado](/en/part7/custom_hooks) llamado _useNotes_:
745
+
Instalaremos <i>axios</i>, iniciaremos el json-server y luego realizaremos los cambios necesarios en la aplicación. Con el fin de cambiar las cosas, obtendremos las notas del backend con nuestro [hook personalizado](/es/part7/hooks_personalizados) llamado _useNotes_:
<div>{notes.length} notes on server {url}</div>// highlight-line
784
781
</div>
785
782
)
@@ -788,39 +785,24 @@ const App = () => {
788
785
exportdefaultApp
789
786
```
790
787
791
-
792
788
La dirección del servidor backend está actualmente hardcodeada en el código de la aplicación. ¿Cómo podemos cambiar la dirección de forma controlada para que apunte al servidor de backend de producción cuando el código está empaquetado para producción?
793
789
794
-
795
-
Cambiemos el objeto de configuración en el archivo <i>webpack.config.js</i> para que sea una función en lugar de un objeto:
790
+
La función de configuración de webpack tiene dos parámetros, <i>env</i> y <i>argv</i>. Podemos usar el segundo para averiguar el <i>modo</i> definido en el script npm:
796
791
797
792
```js
798
-
constpath=require('path');
793
+
constpath=require('path')
799
794
800
-
constconfig= (env, argv) => {
795
+
constconfig= (env, argv) => { // highlight-line
796
+
console.log('argv.mode:', argv.mode)
801
797
return {
802
-
entry:'./src/index.js',
803
-
output: {
804
-
// ...
805
-
},
806
-
devServer: {
807
-
// ...
808
-
},
809
-
devtool:'source-map',
810
-
module: {
811
-
// ...
812
-
},
813
-
plugins: [
814
-
// ...
815
-
],
798
+
// ...
816
799
}
817
800
}
818
801
819
802
module.exports= config
820
803
```
821
804
822
-
La definición sigue siendo casi exactamente la misma, excepto por el hecho de que la función ahora devuelve el objeto de configuración. La función recibe los dos parámetros, <i>env</i> y <i>argv</i>, el segundo de los cuales se puede utilizar para acceder al <i>modo</i> definido en el script npm.
823
-
805
+
Ahora bien, si queremos, podemos configurar webpack para que funcione de manera diferente dependiendo de si el entorno de operación de la aplicación, o <i>mode</i>, está configurado para producción o desarrollo.
824
806
825
807
También podemos usar [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) de webpack para definir <i>constantes predeterminadas globales</i> que se pueden usar en el código incluido. Definamos una nueva constante global <i>BACKEND\_URL</i>, que obtiene un valor diferente según el entorno para el que se empaqueta el código:
La constante global se usa de la siguiente manera en el código:
870
851
871
852
```js
@@ -885,23 +866,20 @@ const App = () => {
885
866
}
886
867
```
887
868
888
-
889
869
Si la configuración para el desarrollo y la producción difiere mucho, puede ser una buena idea [separar la configuración](https://webpack.js.org/guides/production/) de los dos en sus propios archivos.
890
870
871
+
Ahora, si la aplicación se inicia con el comando _npm start_ en modo de desarrollo, obtiene las notas de la dirección http://localhost:3001/notes. La versión empaquetada con el comando _npm run build_ usa la dirección https://notes2023.fly.dev/api/notes para obtener la lista de notas.
891
872
892
-
Podemos inspeccionar la versión de producción empaquetada de la aplicación localmente ejecutando el siguiente comando en el directorio de <i>compilación</i>:
873
+
Podemos inspeccionar la versión de producción empaquetada de la aplicación localmente ejecutando el siguiente comando en el directorio de <i>compilación/build</i>:
893
874
894
875
```js
895
876
npx static-server
896
877
```
897
878
898
-
899
879
De forma predeterminada, la aplicación incluida estará disponible en <http://localhost:9080>.
900
880
901
-
902
881
### Polyfill
903
882
904
-
905
883
Nuestra aplicación está terminada y funciona con todas las versiones relativamente recientes de los navegadores modernos, con la excepción de Internet Explorer. La razón de esto es que debido a _axios_, nuestro código usa [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), y ninguna versión existente de IE las admite:
0 commit comments