Vue 3.3.0 NEW defineModel Will Change How You Write Vue Code!

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • Get a free chapter of my book, and I'll let you know when I go live! bit.ly/3Umk7sW
    With Vue 3.3.0 a new experimental macro defineModel was released. Is it better then v-model, let's take a look at how it works!
    👉Check out my last video on UnoCSS
    • Is Tailwind CSS No Lon...
    👉 Join this channel to get access to perks:
    / @programwitherik
    👉 Sign up and get free Vue cheat sheets and updates!
    www.vuecourse.tech
    👉 Need some help with a project, level up your skills, Vuetify or Nuxt bug? Check out my 1-on-1 mentoring!
    mentors.to/erik
    Follow me!
    / erikch
    Links:
    github.com/vuejs/core/pull/8018
    vue-macros.sxzz.moe/macros/de...
    0:00 What is defineModel
    0:45 How to use defineModel today
    01:17 Vue Macros setup with defineModels
    03:08 Setting up MyChild with current way of handling v-model components
    06:23 Converting to defineModels

Komentáře • 54

  • @ProgramWithErik
    @ProgramWithErik  Před rokem +2

    Hey! Want to get a free cheat sheet from me, and I'll let you know when I go live? Sign up here -> bit.ly/3Umk7sW

  • @codybontecou
    @codybontecou Před rokem +10

    Ooo, this is actually a huge upgrade. I've always found the emit + prop strategy to be a hassle.

  • @Mikenight120
    @Mikenight120 Před rokem +1

    Hey Erik, love your content. FYI, don't know if your aware but this month is the launch of the Vue Official Developer Certifications. Would love to see you cover it on the channel.
    My company even saw it and was very happy as they want employees to get certified in the technologies we use and gain more experience so I hope this is a big stepping stone in maturity for the framework as many others don't have this.

  • @mohammadkhayata2042
    @mohammadkhayata2042 Před rokem +4

    Thanks Erik !
    can you explain Generic Components ( new incoming Feature in v3.3) plz

  • @canardeur8390
    @canardeur8390 Před rokem

    Thank you. Looks promising.

  • @svenyboyyt2304
    @svenyboyyt2304 Před rokem +1

    This is actually really cool. I always thought v-model on components was really cool, but the current way is just weird. Can you make more videos on this kinda stuff?

  • @daniel_dumile
    @daniel_dumile Před rokem +2

    I've been using Vue for 3yrs and I didnt know you could use v-model like that, even though I've used v-model via libraries a million times 😂

  • @reagandesigns6432
    @reagandesigns6432 Před rokem

    Nice!! Do you have a tutorial of your boiler plate setup after you created the component? vbase 3

  • @antoniogiroz
    @antoniogiroz Před rokem +2

    it would be great if you upload more videos about new features in version 3.3, like generic components or new methods like toValue

  • @lighty262
    @lighty262 Před rokem +1

    What about drawbacks of using defineModel vs using emitters?

  • @meggi8048
    @meggi8048 Před rokem +2

    3:54 why do you use ref() with a object for your state obj? i think reactive fits that use case more like:
    const state = reactive({count:0});
    also you do not need to use state.source when accessing it within script block.
    ref() is for primitive values, and for objects reactive() . reactive() does not need use of .value

    • @DimitryKudryavtsev
      @DimitryKudryavtsev Před rokem

      Agreed. Reactive would be better on {count:0}. Ref just on a primitive value would work as well. Still a cool feature maybe for some more complex code.

  • @mostafa-li2pu
    @mostafa-li2pu Před rokem +1

    i love your setup.
    mind sharing the details ?
    icons set, theme, etc
    or what do you think makes a setup great or better
    thank you!!

    • @ProgramWithErik
      @ProgramWithErik  Před rokem +1

      I really need to add a /uses, but it's Synthwave 84, and FireCode!

  • @SXsoft99
    @SXsoft99 Před rokem +1

    i know that you might consider it's a "best practice" but can you write your code without typescript?

  • @mardix
    @mardix Před rokem +3

    Can we get one way and go with it? This is creating so many inconsistencies in teams.
    It feels like, while those are there to make it easier, but Vue is getting worse.

  • @gabrieliuspocevicius5583

    I never really liked the emit way. This is a great improvement.

  • @alcrabie
    @alcrabie Před měsícem

    Hi ,how to use it in option api

  • @codedjango
    @codedjango Před rokem

    I assume this is a typescript only macro....will this affect the programmers who do Vue 3 with pure javascript?

  • @user-uf7vz8sr5m
    @user-uf7vz8sr5m Před 7 měsíci

    Wow this is amazing feature

  • @ropodl
    @ropodl Před rokem

    I like it, don't have to make emit to change modelValue

  • @anuj7286
    @anuj7286 Před rokem +3

    Which theme are you using for vs code?

  • @markokarzic8617
    @markokarzic8617 Před rokem +1

    I love that color theme, can you share the name?

  • @mehmetilhan6083
    @mehmetilhan6083 Před rokem +1

    It always seemed strange to me that props were readonly. It was great that it became an option.

    • @svenyboyyt2304
      @svenyboyyt2304 Před rokem +1

      Well I always thought it made sense they were readonly, but now I just realised that it would make way more sense if every prop was bidirectional and instead of v-model on an input, you could have a two way binding of the prop value.

    • @heroe1486
      @heroe1486 Před rokem

      They are just for primitives, not here since it's an object, mutating the prop in the child would have worked just fine

  • @trynio132
    @trynio132 Před rokem

    It's not anit pattern, when we can change prop in child component? In this case (defineModels) it's look like a anti pattern

  • @hixday93800
    @hixday93800 Před rokem

    For some reasons I can't get to find defineModel informations in the vuejs doc :/ Possibly because it is still an alpha feature ?

    • @ProgramWithErik
      @ProgramWithErik  Před rokem +1

      It was just relased, and it's experimentail. You have to add in a script tag into your vite.config vue() plugin for it to work.

    • @hixday93800
      @hixday93800 Před rokem

      @@ProgramWithErik Thank you

  • @LA-fb9bf
    @LA-fb9bf Před rokem

    I am confused. Isn't that already available since Vue 2? Model binding is not new

  • @bafian
    @bafian Před rokem

    nice

  • @Vietnamkid1993
    @Vietnamkid1993 Před rokem +2

    What the advantage of this compared to passing a reactive value in from provide/inject and modifying it in the child?

  • @alauddinafifcassandra9965

    coolll...

  • @johnnyw525
    @johnnyw525 Před měsícem

    Skip the nonsense. The discussion starts here: 3:08

  • @SebastianPerezG
    @SebastianPerezG Před rokem +5

    This is what hate about some of this frameworks , they change everything..

    • @Kingside88
      @Kingside88 Před rokem +4

      the way how you did it before still works. This feature just extends and simplify

    • @canardeur8390
      @canardeur8390 Před rokem +1

      This is what I hate about IT, they change everything everyday...

    • @Kingside88
      @Kingside88 Před rokem +1

      @@canardeur8390 politician do the same 😁

    • @canardeur8390
      @canardeur8390 Před rokem

      @@Kingside88 True

    • @hixday93800
      @hixday93800 Před rokem +1

      Web developpement always been evolving and moving very fast, you gotta adapt and stay up to date or you gonna find yourself outdated. This is just how it is