It’s been awhile since I did any frontend work. Is there something that has taken jQuery’s place?

  • realharo@lemm.ee
    link
    fedilink
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    11 months ago

    But why bother with creating a new language, and duplicating all the features your language already has, in a weird way?

    If I want a list of UI items based on an array of some data, I can just do items.map(item => 〈Item key={item.id} item={item} /〉), using the normal map function that’s already part of the language.

    Or I can use a function, e.g. items.map(item => renderItem(item, otherData)) etc.

    JSX itself is a very thin layer that translates to normal function calls.

    • spartanatreyu@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      But why bother with creating a new language

      I can just do items.map(item => 〈Item key={item.id} item={item} /〉)

      I don’t think this is a very good example. You’ve just said not to use a new language, then used JSX, a new language.

    • kameecoding@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      11 months ago

      but how do you know what renderItem does? where will the items end up?

      we are visual creatures.

      if I see a <ul><li></li></ul> I know it’s doing a list item for every object in given list.

      it’s literally just html with a few added stuff, v-if to determine whether it’s rendered, v-for for iteration, dynamic class bindings and event listener bindings.

      templating has also been around for a while for a reason it’s solid tech, thymeleaf and jsf/primefaces being prime examples.

      • realharo@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        11 months ago

        Well you don’t have to place it in a separate function, nothing stops you from inlining that part and writing li or whatever directly there.

        It’s up to you how you organize your components.