Auch wenn Wiederholungen in vielen Situationen akzeptabel sind, stellen Sie möglicherweise fest, dass Sie dies zu oft tun. Manchmal möchten Sie übergreifende Komponenten mit zusätzlichem Verhalten oder Stilen erstellen. Sie könnten auch die Verwendung von Drittanbieterbibliotheken in Kombination mit der Typsicherheit von TanStack Router in Betracht ziehen.
createLink erstellt eine benutzerdefinierte Link-Komponente mit denselben Typparametern wie Link. Das bedeutet, Sie können Ihre eigene Komponente erstellen, die dieselbe Typsicherheit und TypeScript-Leistung wie Link bietet.
Wenn Sie eine einfache benutzerdefinierte Link-Komponente erstellen möchten, können Sie dies mit dem Folgenden tun
import * as Solid from 'solid-js'
import { createLink, LinkComponent } from '@tanstack/solid-router'
export const Route = createRootRoute({
component: RootComponent,
})
type BasicLinkProps = Solid.JSX.IntrinsicElements['a'] & {
// Add any additional props you want to pass to the anchor element
}
const BasicLinkComponent: Solid.Component<BasicLinkProps> = (props) => (
<a {...props} class="block px-3 py-2 text-red-700">
{props.children}
</a>
)
const CreatedLinkComponent = createLink(BasicLinkComponent)
export const CustomLink: LinkComponent<typeof BasicLinkComponent> = (props) => {
return <CreatedLinkComponent preload={'intent'} {...props} />
}
import * as Solid from 'solid-js'
import { createLink, LinkComponent } from '@tanstack/solid-router'
export const Route = createRootRoute({
component: RootComponent,
})
type BasicLinkProps = Solid.JSX.IntrinsicElements['a'] & {
// Add any additional props you want to pass to the anchor element
}
const BasicLinkComponent: Solid.Component<BasicLinkProps> = (props) => (
<a {...props} class="block px-3 py-2 text-red-700">
{props.children}
</a>
)
const CreatedLinkComponent = createLink(BasicLinkComponent)
export const CustomLink: LinkComponent<typeof BasicLinkComponent> = (props) => {
return <CreatedLinkComponent preload={'intent'} {...props} />
}
Sie können Ihre neu erstellte Link-Komponente wie jede andere Link verwenden
<CustomLink to={'/dashboard/invoices/$invoiceId'} params={{ invoiceId: 0 }} />
<CustomLink to={'/dashboard/invoices/$invoiceId'} params={{ invoiceId: 0 }} />
Hier sind einige Beispiele, wie Sie createLink mit Drittanbieterbibliotheken verwenden können.
// TODO: Add this example.
// TODO: Add this example.
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.