7 Secret Patterns Vue Consultants Don’t Want You to Know - Chris Fritz

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

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

  • @aquavitale3551
    @aquavitale3551 6 лет назад +34

    Oh my goodness this is the most cheerful speaker I've ever seen

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

    Would love an updated 2022 version of this talk!

  • @JeremyAndersonBoise
    @JeremyAndersonBoise 6 лет назад +18

    Your energy is great, and there are some very slick patterns in there.

  • @HardwareAddiction
    @HardwareAddiction 6 лет назад +11

    What Vue needs asap, is a React "Fragment" feature, so we can write components that only share state, thus without a redundant root element. This way we can take full advantage of the Render prop method, which in Vue was officially announced as "Scoped Slot". In that regard it's actually pretty funny. While Vue realized this and implemented, React has added "Render Props" to their documentation only recently.

    • @mxd8
      @mxd8 5 лет назад

      more details please @hardwareaddiction

  • @andrewkiminhwan
    @andrewkiminhwan 6 лет назад +17

    ok so I am 6 minutes in, and this is already one of the best developer talks I've ever heard or watched in my life... those transition animations from previous to new boosts! lol

    • @poolkrooni
      @poolkrooni 6 лет назад

      Yeah, any clue how he achieves those transitions? Must be a JS slideshow lib like reveal.js right?

    • @rsletta
      @rsletta 4 года назад

      @@poolkrooni Apple Keynote -> Magic Move transition. Keynote file can be downloaded at github.com/chrisvfritz/7-secret-patterns/blob/master/slides-2018-10.key .

  • @microcipcipcip
    @microcipcipcip 6 лет назад +11

    If you don't have time to watch the full talk, jump to 21:55 to Transparent Wrappers because it is a really really cool tip

  • @s4ndeep1203
    @s4ndeep1203 4 года назад

    Two years later, i still come back and learn new stuff from this video

  • @fille.imgnry
    @fille.imgnry 6 лет назад +13

    Amazing! First time I got some ”ahaa” moments since started with Vue, thx!

  • @AndrewCampbell123
    @AndrewCampbell123 6 лет назад +2

    Just a point on Module Registration - I noticed when implementing the directory scraper, that my modules were being added, but everywhere in my codebase that referred to an imported getter/state variable it was erroring.
    My solution was to add a ".default" after the requireModule(fileName) function call.
    Just in case anyone should encounter the same fate!
    modules[moduleName] = requireModule(fileName).default

  • @adammenczykowski
    @adammenczykowski 6 лет назад +4

    Love this video! Will watch again, thank you! Awesome tips and positive outlook. “I’m gonna FIND you and make you learn something if you haven’t” great quote made me laugh 😂

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

    Transparent Wrappers tweak changed my life :D a big big big thumb up on that guy

  • @c01nd01r
    @c01nd01r 6 лет назад +45

    github.com/chrisvfritz/7-secret-patterns
    www.patreon.com/chrisvuefritz

  • @vedovelli
    @vedovelli 6 лет назад +16

    Simply awesome! Thanks a lot!

    • @rodolfoazevedo4082
      @rodolfoazevedo4082 6 лет назад +1

      Vlw Vedovelli, vim aqui porque você linkou, achei muito show :D

  • @HardwareAddiction
    @HardwareAddiction 6 лет назад +1

    I knew most of this. Didn't know about `inheritAttrs`, although I did know about `$attrs` long time ago. You can't write a good component without using it. However, using `inheritAttrs: false` on my base component (which all others extend) is a very good practice because it ensures nobody passes down attributes implicitly, which makes the code brittle and unpredictable.

  • @ozanmuyes
    @ozanmuyes 5 лет назад

    An amazing talk from an amazing person for an amazing framework. I'm delighted and enlighted by the presentation and by the techniques it introduced. And Chris your positive energy is awesome, I wish I had been given 2x like opportunity for this video. Everything aside dark background for the presentation is killer. Thanks man.

  • @reneeschke
    @reneeschke 5 лет назад +2

    I'm confused: Why is `.keys().forEach()` working here? When I apply this to an object or array, I get an error that this function doesn't exist. Is this functionality that comes from webpacks `require.context()`?

    • @reneeschke
      @reneeschke 5 лет назад +2

      Okay, figured it out myself:
      webpack.js.org/guides/dependency-management
      .keys() in fact really comes from the require.context() function
      what also took me a while to get my head around is that require.context() returns a require() function for that specific context AND offers the .key() function on top of that. It then makes total sense, that he starts with requireContext.keys() and then calls the requireContext() FUNCTION inside the .forEach() - cool setup, but hard to decipher for newcomers to both ES6 and webpack.

  • @logang865
    @logang865 6 лет назад

    So how would you access mapActions using the namespace (what would the spread operator code look like) if you extrapolate your modules into the root level?

  • @KidJV
    @KidJV 4 года назад

    28:26 where to put the missing quote at $attrs?

  • @mxnalaka
    @mxnalaka 6 лет назад

    This this amazing, wish I knew these tricks earlier. thank you!

  • @2002budokan
    @2002budokan 5 лет назад +1

    Great video, and thank you.
    BUT be alerted: If something needs tips/tricks/tweaks; it should either be redesigned, or requires a new layer to hide all these tips/tricks/tweaks to produce clean and terse code...
    For example the modules stuff explained in this video. I know the comfort it provides from Quasar. Quasar framework implements this so that I do not need to adjust anything manually. This should be done in Vue from the beginning. Why should I import the modules manually if it can be done automaGically?

    • @Bcbweb
      @Bcbweb 4 года назад +1

      This what I was thinking as I watched the talk. It would be better to design an intuitive approach to dealing with these problems rather than needing to know obscure tricks and patterns that will look cryptic to other developers who have to work on the code. These techniques are really useful once you know them, but to be honest, the code is just hacky madness

    • @2002budokan
      @2002budokan 4 года назад

      @@Bcbweb Try Svelte

  • @dmitrysemenov775
    @dmitrysemenov775 6 лет назад +1

    Learnt something new, worth watching

  • @SvingitGolf
    @SvingitGolf 6 лет назад

    When I use require.context() to load base components globaly I get a warning that say "Critical dependency: require function is used in a way in which dependencies cannot be statically extracted"

  • @lathif-theruby958
    @lathif-theruby958 4 года назад

    I like his t-shirt... can have one ?
    please send to Bandung , Indonesia

  • @mrmnmly5994
    @mrmnmly5994 6 лет назад +1

    Awesome talk! Thanks for sharing!

  • @FelipeBlini
    @FelipeBlini 6 лет назад +1

    awesome, thank you!!

  • @HardwareAddiction
    @HardwareAddiction 6 лет назад

    So thanks to this, you can now do render-less components. I played with it yesterday and it seems you can't use (Vue 2.5.x) to pass into a slot, it has to be an actual element. Yesterday, this was released: adamwathan.me/renderless-components-in-vuejs/

  • @CherPsKy
    @CherPsKy 5 лет назад

    Good on the Killer Instinct joke. :p

  • @_the_one_1
    @_the_one_1 6 лет назад +1

    Wow you are awesome!!!

  • @dalsegno1251
    @dalsegno1251 5 лет назад

    Mind blasting!

  •  6 лет назад

    I'm here because of he Vues on Vue podcast where Chris is now a Panelist! devchat.tv/views-on-vue
    Fantastic talk!

  • @felisio3
    @felisio3 6 лет назад +1

    Thanks!!!

  • @marcelmueller1982
    @marcelmueller1982 6 лет назад +1

    I‘m not a friend of globals. Explicit is better than implicit. And what about globals in Unit Tests? Global Mocks?!

    • @gamenetic6426
      @gamenetic6426 5 лет назад

      Hmm, normally I tend to agree with you. But for components, for instance, it is pretty clear that does not exist an "base-button" html tag, so this wouldn't make it more explicit than implicit ?

  • @shekelc42210
    @shekelc42210 6 лет назад +1

    Looks like a nice guy

  • @spoonjeee4785
    @spoonjeee4785 5 лет назад

    great! thx man

  • @posva13
    @posva13 6 лет назад +6

    I don't know what I was looking at either lol, probably people moving on the other side

  • @takeoffpermitted
    @takeoffpermitted 5 лет назад

    mindblowing 🤯

  • @jeticebane2042
    @jeticebane2042 4 года назад +1

    27:47 "data.dickpic"

  • @122223333111
    @122223333111 6 лет назад

    Nice mohawk bro

  • @jonnyso1
    @jonnyso1 5 лет назад

    This brought me so many bad memmories that now I realise I had no idea what I was doing.

  • @TheMaleCraft
    @TheMaleCraft 4 года назад

    Regarding Radical Tweak #2: What you are saying is that Vue breaks on native events, specifically it does not call the native event handler. It breaks but somehow Vue captures that error and keeps it hidden from the developer - then you and Vue decided to spin the fact that this egregious error was hidden by Vue. By calling a Transparent-Wrapper? That is a perfect spin title. Transparent (easy to perceive or detect; clarity) Wrapper (covering for something sold). Yes, sir, you are wrapping the transparency of the situation. That Vue knew about this problem and did not tell it's users, and then chose to spin it with this Radical Hack #2. And called it a Transparent-Wrapper (e.g. Clarity-Concealer). another way to say that is Truth-Hidden. And, a more boiled down version -- a liar.

  • @takeoffpermitted
    @takeoffpermitted 5 лет назад

    🤯

  • @splintzful
    @splintzful 4 года назад

    Of all the things that should be demonetized on youtube clickbait titled shit like this tops the list