Y honestamente, este patrón ha sido genial. Hay bordes como los que ves aquí. Aunque teníamos todas estas cosas múltiples bajo slash dashboard, queríamos que el dashboard como la ruta fuera diferente de un ID dado dentro de él. Porque cuando vamos a mi dashboard, queríamos que todas estas partes diferentes se comportaran de manera diferente desde el nivel superior aquí. Queríamos mostrar el selector para que pudieras cambiar de organización y otras cosas con un nav superior diferente aquí. Queríamos que las cosas dentro fueran diferentes. Queríamos este componente aquí, queríamos otros comportamientos adicionales y cosas por el estilo.
Para hacer eso, tuvimos que tener dos diseños diferentes. Y necesitamos asegurarnos de que este no se aplique cuando queremos que este se aplique. Para hacer eso, tienes que usar la sintaxis especial para extraer cosas de la ruta. Entonces, los paréntesis son invisibles. Significa que esto es efectivamente si solo hicieras la barra diagonal y luego el que tiene los corchetes, ese es un valor que puedes obtener ahora. Entonces, si voy a page TSX aquí, puedes ver que tengo app ID como una propiedad que se pasa como un parámetro. Y ahora que tengo esto que se pasa aquí, puedo usarlo para cosas. En este caso, tengo un enlace para ello. Estoy seguro de que hay muchos otros lugares donde usamos esto más. Oh, app outdated SDK es props que app ID.
Y así de fácil es hacer la obtención de datos, lo cual honestamente, podemos hacer ahora el hecho de que si necesito acceder rápidamente a algo como una cosa de database, es tan simple que es hilarante. Entonces, esta code app tiene outdated SDK, lo que hace es comprobar qué versión del SDK utilizaste en tu carga de archivos más reciente para ver si está desactualizada. Dado que este es un tutorial antiguo, lo que estábamos usando obviamente está desactualizado. Por lo tanto, recomienda que actualicemos a la última versión. Y lo hace ejecutando esta función donde obtenemos la versión del SDK para la app, que es solo una llamada a la database, por cierto, luego obtenemos la última versión de UploadThing que se verifica en el registro de npm, incluso podríamos almacenar en caché esto de manera bastante trivial para hacer las cosas aún más rápidas.
Y luego, si la versión está desactualizada, lo cual sabemos después de comparar estas para asegurarnos de que la nueva versión que tienes está dentro de la más reciente. De lo contrario, devolvemos esta advertencia, incluso tenemos el simple return null aquí, esto es solo tu componente habitual. Pero dado que esto se ejecuta en el servidor, podemos llamar directamente a cosas del servidor como esta. Y si esto devuelve null, entonces simplemente no obtienes nada de vuelta en el lado del cliente, no hay ninguna penalización aquí en absoluto. Este JavaScript no explota en el cliente, el usuario obtiene esto que efectivamente no existe, lo cual es mágico. Es tan genial que podrías escribir teóricamente un código súper complejo aquí que solo se monta si ese componente lo devuelve, y simplemente puedes ejecutar lógica para asegurarte de que no lo haga. Estos patrones de obtención de datos no han quedado obsoletos, todavía se siente mágico cada vez que puedes simplemente esperar y obtener información de la app, que es solo esta llamada a la database. Es tan genial que en un componente, simplemente puedes esperar data.
Y si no tienes lo que quieres, simplemente devuelve null, eso hace que todo sea mucho más simple. Y hemos descubierto que esta simplicidad escala absolutamente, no escala en el sentido de que nunca volverás a tener complejidad.
Comments