Hirdetés

Keresés

Új hozzászólás Aktív témák

  • martonx
    veterán

    Nekem a Reactal kapcsolatban az overengineeringel van ki a :P öm.
    Mai példám rá:

    interface ListItem {
    to: string,
    icon: IconProp,
    text: string
    }

    const SpreadListItems = (array: ListItem[]) => {
    return array.map((item, index) => (
    <li key={index}>
    <Link to={item.to}>
    <Icon icon={item.icon}/>
    {item.text}
    </Link>
    </li>
    )
    )
    };

    const MenuLinks: ListItem[] = [
    {to: '/search', icon: 'search', text: 'search'},
    {to: '/favorites', icon: 'heart', text: 'favorites'},
    {to: '/cart', icon: 'shopping-cart', text: 'cart'},
    {to: '/login', icon: 'sign-in-alt', text: 'sign in'}
    ];

    ... majd komponensen belül ...

    {SpreadListItems(MenuLinks)}

    Szerintem nem egészséges az, hogy mindent ennyire absztraktan kell csinálni, viszont egy jó fapados minden elemet kézzel beírt html kódot meg nem mernék felrakni a githubomra mert kiröhögnek :N

    No igen, itt jön be, amit írtam, hogy a react meg túl fapados, és még egy normális bindolás, foreach sincs benne. :D és ezek hiánya miatt mindent kényszeresen komponensekbe "kell" szervezni, hogy "elrejtsd" a fapadosságát, és mégis valamennyire olvasható maradjon a kód.

    Ezzel szemben vuejs-el / angular-al (már ha angular esetében megtetted előtte a fentebb részletezett jó hosszú előkészületeket) kb. ennyivel meg is lehet oldani:

    <ul id="example-1">
    <li v-for="item in ListItems">
    <a :href=item.to>
    <img :title=item.title :alt=item.alt :src=item.src />
    {{ item.text }}
    </a>
    </li>
    </ul>

    Aztán persze vue / angular vonalon is lehet komponenseket készíteni, de a fejlett html-es binding lehetőségek miatt korántsem kell annyira kényszeresen csinálni, mint a reactnál.

    "egy jó fapados minden elemet kézzel beírt html kódot meg nem mernék felrakni a githubomra mert kiröhögnek" - ezt csak hiszed. Az "attól tűnik profibbnak, hogy jól túlkomplikáljuk" hozzáállás is nevetséges tud lenni :)

Új hozzászólás Aktív témák