DocsBasé sur un fichier
Crochets
Les hooks lisent la requête HTTP actuelle depuis une page .nexy, un gestionnaire d'API ou un contrôleur modulaire. Leurs noms correspondent aux hooks du routeur client (@nexy/client) où ils font la même chose.
Les crochets
| Crochet | Renvoie |
|---|---|
usePathname() |
chemin de requête, par ex. "/blog/post-1" |
useSearchParams() |
chaîne de requête sous la forme dict[str, str], première valeur par clé |
useParams() |
paramètres de chemin dynamique, par ex. {"slug": "post-1"} |
useQuery() |
le nom original de useParams(), conservé pour les pages existantes |
useRequest() |
la demande Starlette, pour ce que les autres hooks ne couvrent pas |
useHeaders() |
les en-têtes de requête comme dict[str, str], les noms en minuscules |
useUrl() |
l'URL complète : .scheme, .hostname, .port, .path, .query |
useIsActive(href, exact=False) |
si href est la page actuelle ou l'un de ses parents |
useRouter() |
{"path", "base_url", "url_for"} |
useCookies() |
tous les cookies comme dict[str, str] |
useSession() |
le dict de session, {} lorsque les sessions ne sont pas activées |
useToc(depth_range="2-6") |
table des matières HTML pour la page actuelle, "" lorsqu'il n'y en a pas |
useViews(path, context=None) |
rend une autre vue et renvoie un HTMLResponse |
Lire la demande
from nexy import useCookies, usePathname, useSearchParams pathname = usePathname()page = useSearchParams().get("page", "1")theme = useCookies().get("theme", "light")<p>{{ pathname }} - page {{ page }} - {{ theme }} theme</p>Un lien actif dans une barre de navigation
useIsActive suit la même règle que sur le client : la chaîne de requête, le fragment et une barre oblique finale sont ignorés, un lien vers un parent est actif sur ses enfants sauf si exact est défini, et / n'est actif que sur /.
from nexy import useIsActive href: prop[str]label: prop[str]<a href="{{ href }}"{% if useIsActive(href) %} aria-current="page"{% endif %}>{{ label }}</a>Remarques
useQuery()renvoie les paramètres path, pas la chaîne de requête, c'est pourquoiuseParams()existe. La chaîne de requête estuseSearchParams().useRouter()voici le hook de requête. Ce n'est pas le champ de configurationuseRouterqui monte unAPIRouter.useSession()a besoin deuseSession = {...}dansnexyconfig.py; sans cela, le dict est vide.useViews("about.tsx", {"title": "About"})renvoie HTML : une vue.nexyest rendue par son module compilé, une vue.tsx/.jsx/.vue/.svelte/.mdxdevient un conteneur de montage client.
Prochaines étapes
- Pages : segments et mises en page dynamiques
- Recettes : un flux de connexion testé basé sur
useSession() - Configuration : activer les sessions et les paramètres régionaux
- fichiers .nexy : où les hooks sont généralement appelés