GithubHelp home page GithubHelp logo

cutshadows / reactjs-filter Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 1.75 MB

example filter with more than thousand elemnts in search filter

JavaScript 100.00%
platzi-course platzi-reactjs reactjs richard-kaufman-mentor filter-search

reactjs-filter's Introduction

FILTER SEARCH REACTJS WITH HOOKS

Demostration

HOOKS

Las funciones no tienen un estado propio que manejar como ciclos de vida a los que deben suscribirse, mientras tanto las clases sí cuentan con ello.

React tiene un feature llamado Hooks que permite que las funciones también tengan features que solamente tienen las clases.

Hooks: Permiten a los componentes funcionales tener características que solo las clases tienen:

useState: Para manejo de estado. useEffect: Para suscribir el componente a su ciclo de vida. useReducer: Ejecutar un efecto basado en una acción. Custom Hooks: Usamos los hooks fundamentales para crear nuevos hooks custom. Estos hooks irán en su propia función y su nombre comenzará con la palabra use. Otra de sus características es que no pueden ser ejecutados condicionalmente (if).

useState regresa un arreglo de dos argumentos.

useState

esta funcion la vamos a llamar cuando nuestro componente funcional quiera cambiar su estado

useEffect

nos va a permitir subscribirnos a ciclo de vida cuando queremos que nuestro componentes se ejecute antes del ciclo de vida

useReducer

nos va a permitir tomar acciones basados en otras acciones es un conjunto limitado de todos los hoojs

Custom Hooks

Usamos los hooks fundamentales para crear nuevos hooks custom por nomenclatura se le designa a cada custom hooks un nombre 'USE' antes del hooks creado por nosotros regla #2 > un hooks nunca se va a poder ejecutar condicionalmente esto quiere decir que podemos decir if y adentro ejecutar el hooks

utilizacion de hooks en un filtro de busqueda Optimizado y lazy

function useSearchBadges(badges){ const [query, setQuery]=React.useState(''); const [filteredBadges, setFilterResults]=React.useState(badges); React.useMemo(()=>{ const result=badges.filter(badge=>{ return ${badge.firstName} ${badge.lastName}` .toLowerCase() .includes(query.toLowerCase()); //este tipo de filtros es un poco costoso cuando son miles de datos potencial cuello de botella //useMemo recibe como primer argumento una funcion // segundo elemento que recibe es una lista que si el argumento esta guardado te la devuelve sino te la crea por primera vez }); setFilterResults(result); }, [badges, query] ); return {query, setQuery, filteredBadges} }

function BadgesList(props){ const badges=props.badges; const {query, setQuery, filteredBadges}=useSearchBadges(badges); if(filteredBadges.length===0){ return(

Filter Badges <input type="text" className="form-control" value={query} onChange={(e)=>{ setQuery(e.target.value) }}/>

No badges were found

Create new badge
) } return(
Filter Badges <input type="text" className="form-control" value={query} onChange={(e)=>{ setQuery(e.target.value) }}/>
    {filteredBadges.map(badge=>{ return(
  • <Link className="text-reset text-decoration-none" to={/badges/${badge.id}} >
  • ) })}
) }`

reactjs-filter's People

Contributors

cutshadows avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.