Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

289
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda