No he tenido que escribir un patrón de renderProps desde que los componentes/ganchos funcionales se convirtieron en lo que había que hacer, hasta ahora. Al buscar en Google si sigue siendo el enfoque correcto, he leído algunos artículos sobre renderProps que son noticias antiguas y un antipatrón. Las alternativas proporcionadas incluyen ganchos o pasar un nodo JSX.
Sin embargo, tengo un requisito que estos dos no pueden usar. Necesito:
Se parece un poco a esto:
const parent = (parentProp) => { const actions = useCallback((childProps) => { return <Button p1={childProps} p2={parentProps} /> }, [parentProp]) return <Child renderActions={actions} /> } const child = (renderActions) => { const [childProp] = useState(1) const actionRenderer = useCallback(() => { return renderActions(childProp) }, [childProp, renderActions) return ( <div>{actionRenderer}</div> ) }Me preocupa el rendimiento y las re-renderizaciones innecesarias, por lo que usecallbacks debería detener esto.
¿Existe una forma más "moderna" de lograr esta funcionalidad o renderProps sigue siendo viable?
Sinceramente, no veo ningún problema con su código (aparte de varios errores tipográficos).
El patrón Render Props sigue siendo viable, al igual que los ganchos y HOC.
Lea esto si desea obtener más información: https://stackoverflow.com/a/58856111/3930247
Personalmente, casi nunca uso accesorios de representación porque hace que el código sea menos legible, pero esa es solo mi opinión. Hay muchos ejemplos en los que se utilizan accesorios de representación en React moderno.