Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

288
Vistas
¿Cómo crear un sitio web que no sea de spa solo usando react js?

Tengo un proyecto de prueba simple que usa reaccionar que muestra a los usuarios de una API falsa. El componente principal se llama App y es mi página de inicio. Hay un botón llamado panel en el componente de la aplicación. Quiero que vaya al Componente del panel cuando haga clic en él.

 function App() { const users = useSelector(state => state.users) const dispatch = useDispatch(); const getUsers=()=>{ // async action using redux-thunk return async function(dispatch){ try{ dispatch(GetUserRequest()) const response= await axios.get("https://reqres.in/api/users?page=2") dispatch(GetUserSuccess(response.data.data)) } catch(er){ dispatch(GetUserFail(er)) } } } useEffect(()=>{ dispatch(getUsers()) } ,[]) return (<> <Provider store={store}> <Routes> <Route path="users" element={<Users Items={users}/>}/> <Route path="/Panel" element={<Panel/>}/> </Routes> <button className='btn btn-primary' onClick={()=>{ navigate("/Panel") }}>Panel</button> <Users/> </>

Es simple, ¡pero quiero que el componente Panel sea una página separada en lugar de ser parte de la página de inicio! Y no quiero mostrar otros componentes (en mi componente de usuario del proyecto)

Así que probé un truco: usar el estado showPages para determinar qué página se debe mostrar:

 function App() { const users = useSelector(state => state.users) const[showPages,setShowPages]=useState("users") useEffect(()=>{ setShowPages("users") dispatch(getUsers()) } ,[]) return (<> <button className='btn btn-primary' onClick={()=>{ setShowPages("panel") }}>Panel</button> {showPages=="users" && ( <Users/> Items={users})} {showPages=="Panel" && <Panel/>} </>

Ahora, cuando hago clic en el botón del Panel, puedo ver la página del Panel como una página separada, pero adivinen qué: ¡me perdí el botón Atrás del navegador! Tampoco quiero usar un proyecto basado en html y usar reaccionar en él.

¿Es posible crear un sitio web que no sea de spa usando Pure React? o debería crear un proyecto sin reaccionar y usar reaccionar en él.

over 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que sería mejor aprender Framework esos usos React. Porque React no es compatible con SEO. No tenía representación del lado del servidor ni generación de servidor estático. Solo proporciona obtención y representación del lado del cliente.

También puedes probar React Router. Pero en algún momento, se sentiría difícil de mantener rutas con React Router.

Si desea aprender el marco que usa React, puede probar RemixJS.

over 4 years ago · Juan Pablo Isaza Denunciar

0

Finalmente, encontré una manera. Creé un nuevo componente llamado Inicio y le puse el componente Usuario y el botón del panel. En lugar de representar el componente de inicio en el componente de la aplicación, hice la página de inicio del componente de inicio mediante el enrutamiento:

 <Route path="/" element={<Home Items={users}/>}/>

También enruté el componente del Panel en el componente de la aplicación

 <Route path="/Panel" element={<Panel/>}/>

Ahora aquí está mi componente de aplicación:

 function App() { const users = useSelector(state => state.users) const dispatch = useDispatch(); const getUsers=()=>{ // async action using redux-thunk return async function(dispatch){ try{ dispatch(GetUserRequest()) const response= await axios.get("https://reqres.in/api/users?page=2") dispatch(GetUserSuccess(response.data.data)) } catch(er){ dispatch(GetUserFail(er)) } } } useEffect(()=>{ dispatch(getUsers()) } ,[]) return(<> <Routes> <Route path="/" element={<Home Items={users}/>}/> <Route path="/Panel" element={<Panel/>}/> </Routes> </>) }

Y aquí está el componente Inicio:

 const Home = (props) => { return ( <> <button className='btn btn-primary' onClick={()=>{ navigate("/Panel") }}>Panel</button> <Users Items={props.Items}/> </> }

Ahora, cuando hago clic en el botón Panel, veo el componente Panel como una página separada (no spa). También puede usar la ruta secundaria y la salida si desea tener un sitio semi spa (por ejemplo, si desea mostrar algunos componentes en la página de inicio y mostrar otros como páginas separadas)

over 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda