[{"data":1,"prerenderedAt":90},["ShallowReactive",2],{"topic-workshops-composables":3,"topic-articles-composables":4,"topic-speaking-composables":5},[],[],[6,58],{"id":7,"title":8,"body":9,"date":33,"description":34,"eventName":35,"eventUrl":36,"extension":37,"language":38,"location":39,"meta":40,"navigation":46,"path":47,"podcastUrl":48,"seo":49,"slidesUrl":50,"stem":51,"topics":52,"type":56,"videoUrl":48,"__hash__":57},"speaking\u002Fspeaking\u002F2025-03-13-composables-vue-ams.md","The Composable Handbook - Stop Writing Bad Composables",{"type":10,"value":11,"toc":29},"minimark",[12,21],[13,14,15,16,20],"p",{},"Who of you writes composables? And - more importantly - who of you writes ",[17,18,19],"em",{},"good"," composables?",[13,22,23,24,28],{},"The Composition API makes it tempting to wrap everything into a ",[25,26,27],"code",{},"useSomething()"," function, but not every composable is a well-designed one. In this Vue.js Amsterdam 2025 talk, I turned the patterns, pitfalls and principles I use in consulting engagements into a compact \"composable handbook\" - a set of guidelines to help you design composables that are reusable, testable and pleasant to work with.",{"title":30,"searchDepth":31,"depth":31,"links":32},"",2,[],"2025-03-13","Who of you writes composables? And - more importantly - who of you writes good composables?","Vue.js Amsterdam","https:\u002F\u002Fvuejs.amsterdam\u002F","md","en","Amsterdam, Netherlands",{"readingTime":41},{"text":42,"minutes":43,"time":44,"words":45},"1 min read",0.385,23100,77,true,"\u002Fspeaking\u002F2025-03-13-composables-vue-ams",null,{"title":8,"description":34},"https:\u002F\u002Fgithub.com\u002FTheAlexLichter\u002Ftalk-composables-vue-ams-25","speaking\u002F2025-03-13-composables-vue-ams",[53,54,55],"vue","composition-api","composables","talk","47tSHnsSwSSvYM7I-U2R_UefmhrbYgOneAx9-4No83E",{"id":59,"title":60,"body":61,"date":74,"description":75,"eventName":76,"eventUrl":77,"extension":37,"language":38,"location":78,"meta":79,"navigation":46,"path":84,"podcastUrl":48,"seo":85,"slidesUrl":86,"stem":87,"topics":88,"type":56,"videoUrl":48,"__hash__":89},"speaking\u002Fspeaking\u002F2024-09-17-composables-pragvue.md","Vue Done Right: Composable Best Practices Simplified",{"type":10,"value":62,"toc":72},[63,69],[13,64,65,66,68],{},"Composables are one of the greatest strengths of Vue's Composition API - but writing ",[17,67,19],{}," composables is not as straightforward as it seems. Too often, they turn into bloated utility functions that are hard to reuse, test, or maintain.",[13,70,71],{},"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":30,"searchDepth":31,"depth":31,"links":73},[],"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","Prague, Czech Republic",{"readingTime":80},{"text":42,"minutes":81,"time":82,"words":83},0.41,24600,82,"\u002Fspeaking\u002F2024-09-17-composables-pragvue",{"title":60,"description":75},"https:\u002F\u002Fgithub.com\u002FTheAlexLichter\u002Ftalk-vue-best-practices-pragvue-2024","speaking\u002F2024-09-17-composables-pragvue",[53,54,55],"8cvlJuJwqFnfk6wa6VJFPXQaKinaTL0qdIW9-6d56KM",1776884386100]