PageSourceSearch

https://antfu.me/assets/talks-CLqcV0b6.js

js antfu.me collected 2026-10-02 15:07:47 UTC 16,543 bytes, 1 lines download raw bytes

1import{A as e,D as t,E as n,K as r,M as i,S as a,T as o,Y as s,_t as c,i as l,k as u,nt as d,pt as f,q as p,r as m,w as h}from"./app-i8bZJj9W.js";import{n as g,t as _}from"./vue.BHyNcdic-D2KugMlH.js";import{t as v}from"./SubNav-COre2Osq.js";var y=[{title:`Introducing Vite DevTools`,description:`Introduction to Vite DevTools`,presentations:[{lang:`zh`,date:`2025-07-12`,location:`Shenzhen, China`,conference:`VueConf China`,conferenceUrl:`https://vueconf.cn/`,recording:`https://www.bilibili.com/video/BV1Nqb1zoENu/`,pdf:`https://talks.antfu.me/2025-07-12/pdf`,spa:`https://talks.antfu.me/2025/vueconf-china`},{lang:`en`,date:`2025-10-09`,location:`Amsterdam, Netherlands`,conference:`ViteConf`,conferenceUrl:`https://viteconf.amsterdam/`,pdf:`https://talks.antfu.me/2025-10-09/pdf`,spa:`https://talks.antfu.me/2025/viteconf`,recording:`https://youtu.be/tVd0JeSr8kg`},{lang:`ja`,date:`2025-10-25`,location:`Tokyo, Japan`,conference:`Vue Fes Japan`,conferenceUrl:`https://vuefes.jp/2025/en/`,pdf:`https://talks.antfu.me/2025-10-25/pdf`,spa:`https://talks.antfu.me/2025/vuefes`}]},{title:`Make Tools People Love`,description:`What I've learned about building tools that delight developers`,presentations:[{date:`2025-09-18`,location:`Boston, USA`,conference:`SquiggleConf`,conferenceUrl:`https://2025.squiggleconf.com/`,recording:`https://www.youtube.com/live/C_ePbVZqXrw?t=975`,pdf:`https://talks.antfu.me/2025-09-18/pdf`,spa:`https://talks.antfu.me/2025/squiggleconf`}]},{title:`Vue と WebComponents で作る Agnostic UI`,description:`VueとWebComponentsを使って、UnoCSSによるスタイリングで、Agnosticなコンポーネントライブラリや埋め込み可能なUIをnpmパッケージとして簡単に作成できます`,lang:`ja`,presentations:[{date:`2025-06-13`,location:`Tokyo, Japan`,lang:`ja`,conference:`v-tokyo`,conferenceUrl:`https://vuejs-meetup.connpass.com/event/355473/`,pdf:`https://talks.antfu.me/2025-06-13/pdf`,spa:`https://talks.antfu.me/2025/v-tokyo`}]},{title:`Journey to Nuxt Icon`,description:`Introductions of various Icon solutions with their Pros and Cons. And how we take the lessons we learned and make the refreshed Nuxt Icon v1.0`,presentations:[{date:`2024-11-12`,location:`Online`,conference:`Nuxt Nation`,conferenceUrl:`https://nuxtnation.com/`,pdf:`https://talks.antfu.me/2024-11-12/pdf`,spa:`https://talks.antfu.me/2024/nuxt-nation/`}]},{series:`Anthony's Road to Open Source - Part 3`,title:`Yak Shaving`,description:`The art of yak shaving and how it can help you to build better open source projects.`,presentations:[{date:`2024-07-06`,location:`Shenzhen, China`,conference:`VueConf Shenzhen`,lang:`zh`,conferenceUrl:`https://vue.w3ctech.com/`,recording:`https://www.bilibili.com/video/BV1XT421r7xy`,pdf:`https://talks.antfu.me/2024-07-06/pdf`,spa:`https://talks.antfu.me/2024/vueconf-shenzhen`},{date:`2024-10-19`,location:`Tokyo, Japan`,conference:`Vue Fes Japan`,conferenceUrl:`https://vuefes.jp/2024/en/`,recording:`https://youtu.be/GpRzKOjckoU`,pdf:`https://talks.antfu.me/2024-10-19/pdf`,spa:`https://talks.antfu.me/2024/vue-fes-japan`},{date:`2025-08-10`,location:`Taipei, Taiwan`,conference:`COSCUP`,conferenceUrl:`https://coscup.org/2025/`,recording:`https://www.youtube.com/watch?v=Hx4ubZxxQJg`,pdf:`https://talks.antfu.me/2025-08-10/pdf`,spa:`https://talks.antfu.me/2025/coscup`}]},{title:`ESLint One for All Made Easy`,description:`Introduction to ESLint's new flat config format and see how it can bring new possibilities and enhancements to your development workflow and experience.`,presentations:[{date:`2024-06-08`,location:`Athens, Greece`,conference:`CityJS Athens`,conferenceUrl:`https://greece.cityjsconf.org/`,pdf:`https://talks.antfu.me/2024-06-08/pdf`,spa:`https://talks.antfu.me/2024/cityjs-athens`,recording:`https://youtu.be/W26P4ss059E`},{date:`2024-06-13`,location:`Amsterdam, Netherlands`,conference:`JS Nation`,conferenceUrl:`https://jsnation.com/`,pdf:`https://talks.antfu.me/2024-06-13/pdf`,spa:`https://talks.antfu.me/2024/jsnation`},{date:`2024-12-07`,location:`Xiamen, China`,lang:`zh`,conference:`FEDAY`,conferenceUrl:`https://fequan.com/2024/`,pdf:`https://talks.antfu.me/2024-12-07/pdf`,spa:`https://talks.antfu.me/2024/feday`},{date:`2024-12-28`,lang:`zh`,location:`Taipei, Taiwan`,conference:`WebConf Taiwan`,conferenceUrl:`https://webconf.tw/`,pdf:`https://talks.antfu.me/2024-12-28/pdf`,spa:`https://talks.antfu.me/2024/webconf-tw`},{date:`2025-05-23`,location:`Tokyo, Japan`,conference:`TSKaigi`,conferenceUrl:`https://2025.tskaigi.org/`,pdf:`https://talks.antfu.me/2025-05-23/pdf`,spa:`https://talks.antfu.me/2025/tskaigi`,recording:`https://youtu.be/12njGF7etuo`}]},{series:`Anthony's Road to Open Source - Part 1`,title:`The Set Theory`,description:`Lessons I learned on my journey to working full time on open source. With tips and thinking for making open source projects more successful.`,presentations:[{date:`2023-10-05`,location:`Online`,conference:`ViteConf`,conferenceUrl:`https://viteconf.org/23/`,recording:`https://www.youtube.com/watch?v=NJbCfAKtxUI`,pdf:`https://antfu.me/talks/2023-10-05`,spa:`https://talks.antfu.me/2023/viteconf`},{date:`2023-10-28`,location:`Tokyo, Japan`,conference:`Vue Fes Japan`,conferenceUrl:`https://vuefes.jp/2023/en`,recording:`https://www.youtube.com/watch?v=8z2ZZFEsnQk`,pdf:`https://antfu.me/talks/2023-10-28`,spa:`https://talks.antfu.me/2023/vuefesjapan`},{date:`2024-03-22`,location:`Paris, France`,conference:`React Paris`,conferenceUrl:`https://react.paris`,recording:`https://youtu.be/7JRa9S4aEEI`,pdf:`https://antfu.me/talks/2024-03-22`,spa:`https://talks.antfu.me/2024/reactparis`},{date:`2024-06-14`,location:`Amsterdam, Netherlands`,conference:`React Summit`,conferenceUrl:`https://reactsummit.com/`,pdf:`https://antfu.me/talks/2024-06-14`,spa:`https://talks.antfu.me/2024/react-summit`}]},{series:`Anthony's Road to Open Source - Part 2`,title:`The Progressive Path`,description:`How progressive approaches can help you to build better open source projects. And why it is crucial for the community to embrace them.`,presentations:[{date:`2024-02-29`,location:`Amsterdam, Netherlands`,conference:`Vue Amsterdam`,conferenceUrl:`https://vuejs.amsterdam`,recording:`https://youtu.be/67Pha7sZ6l0`,pdf:`https://antfu.me/talks/2024-02-29`,spa:`https://talks.antfu.me/2024/vue-amsterdam/1`},{date:`2024-06-01`,location:`Online`,conference:`Frontend Nation`,conferenceUrl:`https://frontendnation.com`,recording:`https://youtu.be/YbyXsi4TPtc`},{date:`2024-10-03`,location:`Online`,conference:`ViteConf`,conferenceUrl:`https://viteconf.org`}]},{title:`Now, and the Future of Nuxt Devtools`,description:`State of the Nuxt Devtools and what's coming next.`,presentations:[{date:`2023-10-18`,location:`Online`,conference:`Nuxt Nation`,conferenceUrl:`https://nuxtnation.com/`,recording:`https://youtu.be/E6kTiIbU3N8`,pdf:`https://antfu.me/talks/2023-10-18`,spa:`https://talks.antfu.me/2023/nuxt-devtools-next`}]},{title:`Developer Experience with Nuxt`,description:`The first introduction to Nuxt Devtools and how it can improve our developer experience for Nuxt`,presentations:[{date:`2023-02-09`,location:`Amsterdam, Netherlands`,conference:`Vue Amsterdam`,conferenceUrl:`https://vuejs.amsterdam`,recording:`https://youtu.be/W6hhU-Ws2Rg`,pdf:`https://antfu.me/talks/2023-02-09`,spa:`https://talks.antfu.me/2023/nuxt-devtools/`,transcript:`/posts/nuxt-dx-2023`},{date:`2023-05-25`,location:`Strasbourg, France`,conference:`StrasbourgJS`,conferenceUrl:`https://strasbourgjs.org`,recording:`https://www.youtube.com/watch?v=brXZw4HQBGY`,pdf:`https://antfu.me/talks/2023-05-25`,spa:`https://talks.antfu.me/2023/nuxt-devtools-strasbourg/`}]},{title:`How I Manage GitHub Notifications`,description:`My workflow for managing GitHub notifications effectively.`,presentations:[{date:`2023-05-17`,location:`Online`,conference:`GitHub Maintainer Summit`,conferenceUrl:`https://maintainermonth.github.com`,recording:`https://youtu.be/gu-0b6KCf80`,pdf:`https://antfu.me/talks/2023-05-17`,spa:`https://talks.antfu.me/2023/github-notifications/`,transcript:`/posts/manage-github-notifications-2023`}]},{title:`VueUse 最佳实践`,lang:`zh`,description:`我们在维护 VueUse 中学到的 Vue 最佳实践与技巧`,presentations:[{date:`2022-12-10`,location:`Online`,lang:`zh`,conference:`VueConf China`,conferenceUrl:`https://vue.w3ctech.com/`,recording:`https://www.bilibili.com/video/BV1bM411U7wq/`,pdf:`https://antfu.me/talks/2022-12-10`,spa:`https://talks.antfu.me/2022/vueuse-best-practice/`}]},{title:`Patterns of VueUse`,description:`The patterns and best practices we learned from maintaining VueUse`,presentations:[{date:`2022-10-16`,location:`Online`,conference:`Vue Fes Japan`,conferenceUrl:`https://vuefes.jp/2022/`,pdf:`https://antfu.me/talks/2022-10-16`,spa:`https://talks.antfu.me/2022/patterns-vueuse/`}]},{title:`Vite, the on-demand DX`,description:`How the on-demand mindset Vite brings can improve our developer experience and creativity`,presentations:[{date:`2022-10-11`,location:`Online`,conference:`ViteConf`,conferenceUrl:`https://viteconf.org/22/`,recording:`https://youtu.be/qXZzXvyqPpc`,pdf:`https://antfu.me/talks/2022-10-11`,spa:`https://talks.antfu.me/2022/vite-on-demand-dx/`}]},{title:`Introduction to Vitest`,description:`Introduction to Vitest, a new testing framework made with Vite for everyone`,presentations:[{date:`2022-01-26`,location:`Online`,conference:`Vue.js N
1ation`,conferenceUrl:`https://viteconf.org/22/`,recording:`https://vuejsnation.com/2022`,pdf:`https://antfu.me/talks/2022-01-26`,spa:`https://talks.antfu.me/2022/vue-nation`}]},{title:`New Ways to Vue`,description:`How the new composition API and script setup improves our Vue development experience dramatically`,presentations:[{date:`2021-10-20`,location:`Online`,conference:`Vue.js Live`,conferenceUrl:`https://vuejslive.com/`,recording:`https://youtu.be/CyaJLrqE9tc`,pdf:`https://antfu.me/talks/2021-10-20`,spa:`https://talks.antfu.me/2021/vue-london`},{date:`2021-10-17`,location:`Online`,lang:`zh`,conference:`{ Laravel x Vue } Conf Taiwan`,conferenceUrl:`https://2021.laravelconf.tw/`,pdf:`https://antfu.me/talks/2021-10-17`,spa:`https://talks.antfu.me/2021/laravel-vue-taiwan`}]},{title:`Composable Vue`,description:`Tips and patterns for writing Vue composable`,presentations:[{date:`2021-04-28`,location:`Online`,conference:`VueDay`,conferenceUrl:`https://vueday.org/`,recording:`https://youtu.be/IMJjP6edHd0`,pdf:`https://antfu.me/talks/2021-04-28`,spa:`https://talks.antfu.me/2021/composable-vue`,transcript:`/posts/composable-vue-vueday-2021`},{date:`2021-05-22`,location:`Online`,conference:`VueConf China`,conferenceUrl:`https://vue.w3ctech.com/`,lang:`zh`,recording:`https://www.bilibili.com/video/BV1x54y1V7H6`,pdf:`https://antfu.me/talks/2021-05-22`,spa:`https://talks.antfu.me/2021/vueconf-china`}]},{title:`Develop with Vite`,description:`How Vite can improve our development experience`,presentations:[{date:`2021-03-28`,location:`Online`,conference:`Vue Beijing`,conferenceUrl:`https://twitter.com/beijing_vue`,recording:`https://www.youtube.com/watch?v=xx8gEHet6n8`,pdf:`https://antfu.me/talks/2021-03-28/zh`,transcript:`/posts/vue-beijing-2021`}]},{title:`import { reactive } from 'vue'`,description:`Introduction to Vue 3's new Composition API`,lang:`zh`,presentations:[{date:`2020-09-26`,location:`Online`,conference:`滨江前端沙龙`,conferenceUrl:`https://github.com/Bin-FE/binfe-salon-ppt`,lang:`zh`,pdf:`https://antfu.me/talks/2020-09-26`,transcript:`/posts/binfe-2020-zh`}]}];y.forEach(e=>{e.presentations.sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime())}),y.sort((e,t)=>new Date(t.presentations[0].date).getTime()-new Date(e.presentations[0].date).getTime());var b={key:0},x={key:0,pt4:``},S=[`id`,`lang`],C={key:0,"text-lg":``,"font-400":``,op45:``,italic:``,mb1:``},w={key:1,"align-top":``,"flex-none":``,ml2:``,class:`text-xs bg-zinc:1
15 text-zinc5 rounded px-1 py-0.5 my-auto`},T={key:2,"align-top":``,"flex-none":``,class:`text-xs bg-zinc:15 text-zinc5 rounded px-1 py-0.5 my-auto`},E=[`href`],D=[`lang`],O={grid:`~ cols-1 md:cols-[1fr_max-content] gap-4`,pt6:``},k=[`lang`],A=[`href`],j={key:0,"align-top":``,"flex-none":``,ml2:``,class:`text-xs bg-zinc:15 text-zinc5 rounded px-1 py-0.5 my-auto`},M={key:1,"align-top":``,"flex-none":``,ml2:``,class:`text-xs bg-zinc:15 text-zinc5 rounded px-1 py-0.5 my-auto`},N={"text-sm":``,op50:``},P={flex:`~ gap-3 justify-end items-center`},F=[`href`],I=[`href`],L=[`href`],R=[`href`],z=[`href`],B=i({__name:`ListTalks`,setup(e){function i(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/-+/g,`-`)}function o(e){return+new Date(e)>Date.now()}function s(e){let t=+new Date(e)-Date.now();return Math.ceil(t/864e5)}return(e,d)=>(r(!0),t(a,null,p(f(y),(e,g)=>(r(),t(a,{key:g},[!f(m)||!e.lang||e.lang===`en`?(r(),t(`div`,b,[g===0?n(``,!0):(r(),t(`div`,x,[...d[0]||=[h(`hr`,null,null,-1)]])),h(`h2`,{id:i(e.title),tabindex:`-1`,"important-mb-0":``,lang:e.lang},[e.series?(r(),t(`span`,C,[u(c(e.series)+` `,1),d[1]||=h(`br`,null,null,-1)])):n(``,!0),u(` `+c(e.title)+` `,1),e.lang===`ja`?(r(),t(`span`,w,`日本語`)):n(``,!0),e.lang===`zh`?(r(),t(`span`,T,`中文`)):n(``,!0),h(`a`,{class:`header-anchor`,href:`#${i(e.title)}`,"aria-hidden":`true`},`#`,8,E)],8,S),e.description?(r(),t(`div`,{key:1,op75:``,pt2:``,lang:e.lang},c(e.description),9,D)):n(``,!0),h(`div`,O,[(r(!0),t(a,null,p(e.presentations,(e,i)=>(r(),t(a,{key:i},[!f(m)||!e.lang||e.lang===`en`?(r(),t(a,{key:0},[h(`div`,{lang:e.lang},[h(`a`,{href:e.conferenceUrl,target:`_blank`,rel:`noopener noreferrer`},c(e.conference),9,A),e.lang===`zh`?(r(),t(`span`,j,`中文`)):n(``,!0),e.lang===`ja`?(r(),t(`span`,M,`日本語`)):n(``,!0),h(`div`,N,c(f(l)(e.date,!1))+` · `+c(e.location),1)],8,k),h(`div`,P,[e.recording?(r(),t(`a`,{key:0,href:e.recording,target:`_blank`,rel:`noopener noreferrer`,op50:``,"hover:op100":``,"important-transition-opacity":``,"duration-500":``,"important-border-0":``},[...d[2]||=[h(`div`,{"i-ri-play-large-line":``},null,-1),u(` Watch `,-1)]],8,F)):n(``,!0),e.transcript?(r(),t(`a`,{key:1,href:e.transcript,target:`_blank`,rel:`noopener noreferrer`,op50:``,"hover:op100":``,"important-transition-opacity":``,"duration-500":``,"important-border-0":``},[...d[3]||=[h(`div`,{"i-ri-file-list-3-line":``},null,-1),u(` Transcript `,-1)]],8,I)):n(``,!0),e.spa?(r(),t(`a`,{key:2,href:e.spa,target:`_blank`,rel:`noopener noreferrer`,op50:``,"hover:op100":``,"important-transition-opacity":``,"duration-500":``,"important-border-0":``},[...d[4]||=[h(`div`,{"i-ri-presentation-fill":``},null,-1),u(` Slides `,-1)]],8,L)):n(``,!0),e.pdf?(r(),t(`a`,{key:3,href:e.pdf,target:`_blank`,rel:`noopener noreferrer`,op50:``,"hover:op100":``,"important-transition-opacity":``,"duration-500":``,"important-border-0":``},[...d[5]||=[h(`div`,{"i-ri-download-2-line":``},null,-1),u(` PDF `,-1)]],8,R)):n(``,!0),o(e.date)?(r(),t(`a`,{key:4,href:e.conferenceUrl,target:`_blank`,rel:`noopener noreferrer`,op50:``,"hover:op100":``,"important-transition-opacity":``,"duration-500":``,"important-border-0":``,"font-serif":``,"bg-gray:15":``,px2:``,rounded:``,"font-bold":``,"mr--2":``},[d[6]||=h(`div`,{"i-ri-time-line":``},null,-1),u(` in `+c(s(e.date))+` days `,1)],8,z)):n(``,!0)])],64)):n(``,!0)],64))),128))])])):n(``,!0)],64))),128))}}),V={class:`prose m-auto slide-enter-content`},H={"slide-enter":``},U={__name:`talks`,setup(t){let n={title:`Talks - Anthony Fu`,display:``,art:`plum`,image:`https://antfu.me/og/talks.png`,meta:[{property:`og:title`,content:`Talks - Anthony Fu`},{name:`twitter:title`,content:`Talks - Anthony Fu`},{property:`og:image`,content:`https://antfu.me/og/talks.png`},{name:`twitter:image`,content:`https://antfu.me/og/talks.png`},{name:`twitter:card`,content:`summary_large_image`}]};return _({title:`Talks - Anthony Fu`,meta:[{property:`og:title`,content:`Talks - Anthony Fu`},{name:`twitter:title`,content:`Talks - Anthony Fu`},{property:`og:image`,content:`https://antfu.me/og/talks.png`},{name:`twitter:image`,content:`https://antfu.me/og/talks.png`},{name:`twitter:card`,content:`summary_large_image`}]}),(t,i)=>{let a=v,c=s(`RouterLink`),l=B,f=g;return r(),o(f,{frontmatter:n},{default:d(()=>[h(`div`,V,[e(a),i[2]||=h(`div`,{"pt-5":``}
1,null,-1),h(`div`,H,[i[1]||=h(`div`,{"i-ri:presentation-line":``,"mr-1":``},null,-1),e(c,{to:`/giving-talks`,op50:``},{default:d(()=>[...i[0]||=[u(`Speaker Info`,-1)]]),_:1})]),i[3]||=h(`h1`,{important:`mb--4 mt-15`},`Talks`,-1),e(l)])]),_:1})}}};export{U as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.