Guia React Parcial
Guia React Parcial
cc/
https://mambaui.com/components
https://tailwindui.com/components
https://daisyui.com/components
https://www.hyperui.dev/components
árbol de directorios
> Vanilla
Vue
cd frontend
npm install
Luego debemos configurar el archivo tailwind.config.js para que se apliquen los estilos a las
extensiones de archivos que deseemos.
@tailwind base;
@tailwind components;
@tailwind utilities;
components
layouts
services
types
views
En postcss.config.js
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
Archivo /types/index.tsx
Archivo userService.ts
import { safeParse } from 'valibot'
import axios from 'axios'
import { UserObject, UserArray, UserType } from '../types/index'
if (result.success) {
return result.output
} else {
throw new Error('Error al obtener los usuarios.')
}
} catch (error) {
console.log(error)
}
}
if (result.success) {
return result.output
} else {
throw new Error('Error al obtener el usuario.')
}
} catch (error) {
console.log(error)
}
}
El codigo de layout.tsx
return (
<>
<section className="flex items-center justify-center mt-10">
<div className="rounded-3xl shadow-2xl p-8 text-center sm:p-12">
<p className="text-3xl font-semibold uppercase tracking-widest text-pink-500">
INFORMACIÓN DEL USUARIO N° {user.id}
</p>
<h4 className="mt-6 text-2xl font-bold">Full ID: {user.userId}</h4>
<h2 className="mt-6 text-3xl font-bold">ID: {user.id}</h2>
<p className="mt-6 text-lg text-gray-600">Título: {user.title}</p>
<p className="mt-6 text-md text-gray-600">
Estado: {user.completed ? "Completo" : "Incompleto"}
</p>
<td className="whitespace-nowrap px-4 py-2">
<Link
to={"/"}
className="inline-block rounded bg-indigo-600 px-4 py-2 text-xs font-medium
text-white hover:bg-indigo-700"
>
Atrás
</Link>
</td>
</div>
</section>
</>
);
};
return (
<>
<tr>
UserID
</th>
ID
</th>
</th>
Completed
</th>
</tr>
</thead>
{users.map((user) => (
<>
<tr key={user?.id}>
{user.userId}
</td>
{user.id}
</td>
{user.title}
</td>
</td>
<Link
to={`/user/${user.id}`}
text-white hover:bg-indigo-700"
>
Ver
</Link>
</td>
</tr>
</>
))}
</tbody>
</table>
</div>
</>
);
};
createRoot(document.getElementById('root')!).render(
<StrictMode>
<RouterProvider router={router} />
</StrictMode>,
)