[{"data":1,"prerenderedAt":80},["ShallowReactive",2],{"speaking-2024-09-17-composables-pragvue":3,"speaking-surround-2024-09-17-composables-pragvue":50},{"id":4,"title":5,"body":6,"date":25,"description":26,"eventName":27,"eventUrl":28,"extension":29,"language":30,"location":31,"meta":32,"navigation":38,"path":39,"podcastUrl":40,"seo":41,"slidesUrl":42,"stem":43,"topics":44,"type":48,"videoUrl":40,"__hash__":49},"speaking\u002Fspeaking\u002F2024-09-17-composables-pragvue.md","Vue Done Right: Composable Best Practices Simplified",{"type":7,"value":8,"toc":21},"minimark",[9,18],[10,11,12,13,17],"p",{},"Composables are one of the greatest strengths of Vue's Composition API - but writing ",[14,15,16],"em",{},"good"," composables is not as straightforward as it seems. Too often, they turn into bloated utility functions that are hard to reuse, test, or maintain.",[10,19,20],{},"In this talk at the very first PragVue, I distilled the patterns I use in client projects and in the Nuxt ecosystem into a set of practical best practices that help you design composables that are reusable, predictable and a joy to work with.",{"title":22,"searchDepth":23,"depth":23,"links":24},"",2,[],"2024-09-17","Composables are one of the greatest strengths of Vue's Composition API - but writing good composables is not as straightforward as it seems. Too often, they turn into bloated utility functions that are hard to reuse, test, or maintain.","PragVue","https:\u002F\u002Fpragvue.com\u002F2024\u002F","md","en","Prague, Czech Republic",{"readingTime":33},{"text":34,"minutes":35,"time":36,"words":37},"1 min read",0.41,24600,82,true,"\u002Fspeaking\u002F2024-09-17-composables-pragvue",null,{"title":5,"description":26},"https:\u002F\u002Fgithub.com\u002FTheAlexLichter\u002Ftalk-vue-best-practices-pragvue-2024","speaking\u002F2024-09-17-composables-pragvue",[45,46,47],"vue","composition-api","composables","talk","8cvlJuJwqFnfk6wa6VJFPXQaKinaTL0qdIW9-6d56KM",[51,66],{"title":52,"path":53,"stem":54,"description":55,"date":56,"eventName":57,"eventUrl":58,"location":59,"slidesUrl":60,"videoUrl":61,"podcastUrl":40,"type":48,"topics":62,"children":-1},"Vue.js Hydration Demystified","\u002Fspeaking\u002F2024-05-15-hydration-vueconf-us","speaking\u002F2024-05-15-hydration-vueconf-us","After Vue.js Amsterdam earlier in the year, the hydration talk made its way across the Atlantic to VueConf US in New Orleans.","2024-05-15","VueConf US","https:\u002F\u002F2024.vueconf.us\u002F","New Orleans, LA, USA","https:\u002F\u002Fgithub.com\u002FTheAlexLichter\u002Ftalk-hydration-vueconf-us-2024","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LdbHmSKp-88",[45,63,64,65],"hydration","nuxt","ssr",{"title":67,"path":68,"stem":69,"description":70,"date":71,"eventName":72,"eventUrl":73,"location":74,"slidesUrl":75,"videoUrl":76,"podcastUrl":40,"type":48,"topics":77,"children":-1},"Gems of Nuxt: 8 Features Every Nuxt Developer Should Know!","\u002Fspeaking\u002F2024-10-08-nuxt-gems-vuejs-de","speaking\u002F2024-10-08-nuxt-gems-vuejs-de","With every release Nuxt is becoming more mature and more powerful. But who can keep up with all the new features, especially when also considering the UnJS packages Nuxt is built upon?","2024-10-08","vuejs.de Conf","https:\u002F\u002Fconf.vuejs.de\u002F","Bonn, Germany","https:\u002F\u002Fgithub.com\u002FTheAlexLichter\u002Ftalk-nuxt-gems-vuejs-de-2024","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=7o34dqkSXlo",[64,78,79],"typescript","nitro",1776884385017]