Easy Form Validation with Vuelidate | Vue 3 Tutorial

Поделиться
HTML-код
  • Опубликовано: 3 ноя 2024

Комментарии • 79

  • @QueeeeenZ
    @QueeeeenZ 2 года назад +7

    One suggestion for the composition API would be to use for shorter and cleaner syntax

    • @crazy_coder
      @crazy_coder 2 года назад +1

      Can you please give me an example of same

    • @_timestamp
      @_timestamp 2 года назад

      @@crazy_coder
      // ----------- replace this -----------
      export default {
      setup(){
      // code here
      return {}
      }
      }
      // ----------- with this -----------
      // code here

    • @fiendsgaming7589
      @fiendsgaming7589 Год назад

      @@crazy_coder read the official Vue3 Docs

    • @fiendsgaming7589
      @fiendsgaming7589 Год назад

      @@crazy_coder
      import { ref } from 'vue'
      const count = ref(0)
      function increment() {
      count.value++
      }

      {{ count }}

  • @dethcx22
    @dethcx22 2 года назад +12

    This isn't actually using the Composition API as you're still mixing in the Options API with the methods object and referencing 'this', at best this is a mix of both APIs.
    For reference, anyone using the Composition API. Create either a normal constant or a computed property with the object you want for your validation (see example below). Then you can use the touch() method to run the validator, or run the validate method:
    const rules = {
    credentials: {
    username: { required },
    email: { required, email },
    password: { required },
    },
    }
    const v$ = useVuelidate(rules, store) // Here I'm just referencing my Pinia store which is using reactive objects.
    Inside my function I run:
    const isFormCorrect = await v$.value.$validate()
    and then check for errors:
    if (!isFormCorrect) return
    Do you checking here, else run function.

    • @raydenchan
      @raydenchan 2 года назад

      Thanks a lot @noxi

    • @crazy_coder
      @crazy_coder 2 года назад

      Can you please provide an example of s

  • @thulas-mkhwanazi
    @thulas-mkhwanazi 2 года назад +2

    Great tutorial. This helped me a lot with Vue 3 Typescript project

    • @LearnVue
      @LearnVue  2 года назад +1

      Glad it helped!

  • @francoislacock
    @francoislacock Год назад

    Very useful video and tutorial. Thank you! I just coded it with the Vue 3 script setup tag from the start and was easy to still get it right.

  • @abubakirmahkamov
    @abubakirmahkamov 2 года назад +2

    Thank you for this lesson .This video is very useful for me.

  • @davidadu-tenkorang3186
    @davidadu-tenkorang3186 3 года назад +6

    You saved me big time.

    • @LearnVue
      @LearnVue  3 года назад +2

      I'm beyond glad that I could help 😇

    • @annizma6873
      @annizma6873 3 года назад +1

      @@LearnVue You saved me too Т.Т

  • @jessicaryan9820
    @jessicaryan9820 2 года назад

    So much nicer than vee-lidate and yup. Thank you!!

  • @pagevpetty
    @pagevpetty 3 года назад +4

    0:30 Add dependencies,
    2:38 Options API Validation,
    5:49 Composition API Validation,
    7:29 Better Validations,
    8:43 Display Error Messages
    9:35 Custom Validation

  • @weristsam
    @weristsam 3 года назад +2

    Great tutorial! but i cannot access v$.. when i print {{ v$ }} i got the following array of data => { "$dirty": false, "$path": "__root", "$model": null, "$error": false, "$errors": [], "$invalid": false, "$anyDirty": false, "$pending": false, "$silentErrors": [] }.. their is no v$.email or something else.. i checked the code several times.. i have exakt the same code
    Edit: in my case it only work with "this.v$.email.$error" and "this.v$.email.email.$message".. i'm wondering, because i return v$: useValidate() in ma data function.

  • @josepacheco1063
    @josepacheco1063 3 года назад +1

    awesome! keep making this kind of video. specially for vue + laravel! thanks

    • @LearnVue
      @LearnVue  3 года назад

      Glad you liked it!

  • @cutipets8706
    @cutipets8706 3 года назад +2

    console.log(this.v$.email.$errors);
    when i try to display the list of errors to the console it gives me an empty array, I dont know why?

  • @mangouni
    @mangouni 2 года назад +2

    Vuelidate documentation is difficult to understand, so.. can i still get and show error messages with VUE 3 without using the Composition API shown in the video?
    Also, How to create custom regex validator and use it? It is confusing.. I tried.. still trying.

    • @LearnVue
      @LearnVue  2 года назад +1

      try the helpers.regex method (vuelidate-next.netlify.app/custom_validators.html#regex-based-validator) and to make sure your regular expression is doing what i want, i use this tool a ton! regexr.com/

    • @mangouni
      @mangouni 2 года назад

      @@LearnVue thank you for the useful links! Since I need to get things done I chose to do the validation without Vuelidate. Maybe I will come back to the documentation in the near future :)

  • @RicardoGarcia-wk8ds
    @RicardoGarcia-wk8ds 2 года назад

    Very, Very useful! Thank you Learn Vue

  • @artemkomarov9902
    @artemkomarov9902 2 года назад

    Hello, needs upadates) if we use script setup and submit form we need use async await to validate...

  • @disa1710
    @disa1710 3 года назад +1

    Great video! Vuelidate docs don't use a computed property for the rules object when using composition API. Is that optional? Or are the docs wrong?

    • @LearnVue
      @LearnVue  3 года назад +2

      Great question! Computed is only needed if your rules are accessing a reactive value, like in the example from the video. This is the part of the docs that use that reactive and computed: vuelidate-next.netlify.app/advanced_usage.html#using-reactive-state.

  • @KhanhLe-vi6gr
    @KhanhLe-vi6gr 3 года назад +1

    Awesome video. Thank you

  • @TheMalni
    @TheMalni Год назад

    Thanks a lot, it was very useful tutorial! 🔥

  • @eduardomavlyutov4710
    @eduardomavlyutov4710 2 года назад

    Thanks for your video!

  • @Useroelas97
    @Useroelas97 2 года назад

    thank you so much :) . please how can we reset form ( errors ) with composition api ?. Thank you

  • @msdnsditlabs5328
    @msdnsditlabs5328 3 года назад +1

    Awesome! Thank you so much buddy

    • @LearnVue
      @LearnVue  3 года назад

      any time - thanks! 😇

  • @madhz007
    @madhz007 3 года назад +1

    Amazing tutorial. How about server side validation such as checking if username is taken? How is that integrated with Vuelidate?

  • @hadeelkamalgobbar4694
    @hadeelkamalgobbar4694 Год назад

    when i added tihs statement => this.v$.$validate() , this error apeared => this.v$.validate is not a function, i don't know what's the reason!!!!!
    :(

  • @brunoberrehuel4833
    @brunoberrehuel4833 2 года назад +1

    Amazing content, great video and awesome explanations !

    • @LearnVue
      @LearnVue  2 года назад +1

      glad it helps :)

  • @priya6491
    @priya6491 2 года назад

    Please post a video about Vuelidate to show errors instead of using composition api>

  • @antoniogiroz
    @antoniogiroz 3 года назад +2

    Great video! Can you create a similar example for VeeValidate? Thanks!

    • @LearnVue
      @LearnVue  3 года назад +4

      definitely something ill look more into! thanks for the suggestion :)

  • @rosia1948
    @rosia1948 3 года назад +1

    Awesome man👍

  • @Troy-ol5fk
    @Troy-ol5fk 3 года назад

    how to validate checkboxs? for example, I want to make sure at least 3 out of 10 check boxes are checked

  • @kennyendowed9814
    @kennyendowed9814 3 года назад +1

    nice one but can i see how to handle Strong passwords need to have a letter, a number, a special character, and be more than 8 characters long. for password validation

    • @LearnVue
      @LearnVue  3 года назад +1

      for that, you can use Vuelidate's minLength to make sure it's longer than 8 characters. And then use a custom validator to check for a letter, number, and special character. You can use a regular expression and this is the documentation for the custom validations: vuelidate.js.org/#sub-simplest-example

  • @hackwithharsha5228
    @hackwithharsha5228 3 года назад

    Thank You, Please help me with following question if you have any idea..( Note: not related to this video.. )
    In my current project, the bundle has becoming bigger and bigger which will lead to more load time for user.. ( This will include some Ajax requests too once the bundle received by client.. Now, I have added pre-loader component in App.vue component which will slow loading screen or window until the document.ready is complete.. which will works good.. The problem with this solution, if a user has slow network as pre-loader component is in bundle which is big size user has to wait for loading screen until the bundle is fully loaded.. which is not great..)
    what I am expecting is some solution with 'index.html', having a loader in the inital index.html file which is small in size and disable it once the bundle and ajax requests are loaded... any idea how to achieve this in Vue ?

  • @TechnoTrace
    @TechnoTrace 3 года назад

    Thanks for your awesome explanation, can you please tell me exactly how to implement vuelidate with vuex in a effective and scalable way with more maintainable code.

  • @happychristian1389
    @happychristian1389 3 года назад

    is this one better or VeeValidate?

  • @usertester8982
    @usertester8982 3 года назад +1

    Hey I try to run same validation method but I am getting error in console
    Uncaught TypeError: this.v$.validate is not a function
    Can you please help me?

  • @faredshadman
    @faredshadman 2 года назад

    Hi, after submit completed it shows required errors again , how can i fix it? It is because I change input fields values to empty string, any way to handle it ?

    • @faredshadman
      @faredshadman 2 года назад

      const v$ = useValidate(rules, state, { $rewardEarly: true });

  • @serdar_a
    @serdar_a 2 года назад +1

    I wrote into the useValidate function first state and then rules - that caused the problem "Maximum call stack size exceeded". Honestly i didn't expected that the order first rules then state is imported. Could you explain why the order matters? Short: const v$ = useValidate(rules, state) does work and const v$ = useValidate(state, rules) doesn't work!

  • @ddung203
    @ddung203 Год назад

    I can't hear English, the video has no subtitles?

  • @softwareEngineerKunwar
    @softwareEngineerKunwar 3 года назад +1

    thanks for video

    • @LearnVue
      @LearnVue  3 года назад

      you're welcome! thanks for watching

  • @pagevpetty
    @pagevpetty 3 года назад

    I tried to get the cheat sheet, but after I put in my email nothing happened 😢 .

  • @zergzerg4844
    @zergzerg4844 Год назад

    Thanks for video but you told very basic thing. It didn't help much. How about tell us how to use regex and validate alfabet fields or digit fields? How does it use?

  • @timzeynalov3537
    @timzeynalov3537 3 года назад

    v$ is undefined vetur problems how cai I fix that?

    • @LearnVue
      @LearnVue  3 года назад

      many of the new vue 3 ways of writing code are still being developed in Vetur, you could always hard ignore lines in Vetur, but typically I just ignore the issues.

  • @abimaeltavares1620
    @abimaeltavares1620 3 года назад +1

    Nice nice nice!!!!! Thx

    • @LearnVue
      @LearnVue  3 года назад

      Thank you for watching!

  • @justAblog
    @justAblog 3 года назад +1

    Thanks

    • @LearnVue
      @LearnVue  3 года назад +1

      No problem - thanks for watching! 😀

  • @motu0427
    @motu0427 2 года назад

    Lovee from Pakistan

  • @Popc1007
    @Popc1007 Год назад

    thanks

  • @thatsenam9183
    @thatsenam9183 3 года назад +1

    Great

  • @paulojose7568
    @paulojose7568 3 года назад +1

    wait, isn't it $v????

    • @LearnVue
      @LearnVue  3 года назад +2

      That's what I thought at first too, because that's the normal Vue syntax. But Vuelidate actually recommends using v$ or just v for the Vuelidate instance: vuelidate-next.netlify.app/guide.html#checking-for-validation-state

  • @siddeshbarhate7516
    @siddeshbarhate7516 3 года назад

    "TypeError: _this.v$.validate is not a function" please reply for this error

    • @dan_vl1909
      @dan_vl1909 3 года назад +1

      Don't know if you already found it, but it is "$validate", not "validate".

  • @GigaHertZ28
    @GigaHertZ28 3 года назад +2

    this.v$.$validate() is not a function

  • @xxxx-xx4im
    @xxxx-xx4im 2 года назад

    What a great content,ty so much!!