This week is the Vue.js Nation Conference (January 29-30), and it's free to register — don't miss out! 🎉
On my end, I've migrated both mokkapps.de and weekly-vue.news to Nuxt Content v3 and Nuxt UI Pro v3. Next up, I'll be continuing work on my Nuxt Starter Kit. Lots of exciting things ahead — stay tuned!
👉🏻 A new suite of open source UI components for Svelte, React, and Vue.
💡 Vue Tip: Use effectScope for Managing and Cleaning Up Reactive Effects
Vue provides the effectScope effectScope API to group and cleanup multiple reactive effects.
An EffectScope EffectScope instance can automatically collect effects run within a synchronous function so that these effects can be disposed together at a later time.
Let's take a look at a simple example:
1// effect, computed, watch, watchEffect created inside the scope will be collected23const scope = effectScope()45scope.run(() => {6 const doubled = computed(() => counter.value * 2)78 watch(doubled, () => console.log(doubled.value))910 watchEffect(() => console.log('Count: ', doubled.value))11})1213// Dispose of all effects in the scope14scope.stop()15
A practical application is the createSharedComposable createSharedComposable function in VueUse:
1import type { EffectScope } from 'vue'2import type { AnyFn } from '../utils'3import { effectScope } from 'vue'4import { tryOnScopeDispose } from '../tryOnScopeDispose'56/**7 * Make a composable function usable with multiple Vue instances.8 *9 * @see https://vueuse.org/createSharedComposable10 */11export function createSharedComposable<Fn extends AnyFn>(composable: Fn): Fn {12 let subscribers = 013 let state: ReturnType<Fn> | undefined14 let scope: EffectScope | undefined1516 const dispose = () => {17 subscribers -= 118 if (scope && subscribers <= 0) {19 scope.stop()20 state = undefined21 scope = undefined22 }23 }2425 return <Fn>((...args) => {26 subscribers += 127 if (!scope) {28 scope = effectScope(true)29 state = scope.run(() => composable(...args))30 }31 tryOnScopeDispose(dispose)32 return state33 })34}
This function creates a shared composable that efficiently manages side effects across multiple components. For example, using a useMouse useMouse hook, you can prevent multiple event listeners from being added:
1function useMouse() {2 const x = ref(0)3 const y = ref(0)45 function handler(e) {6 x.value = e.x7 y.value = e.y8 }910 window.addEventListener('mousemove', handler)1112 onUnmounted(() => {13 window.removeEventListener('mousemove', handler)14 })1516 return { x, y }17}1819const useSharedMouse = createSharedComposable(useMouse)
effectScope effectScope allows developers to manage reactive effects more efficiently and clearly. By leveraging this powerful feature, you can ensure your applications are not only more performant but also easier to maintain.
👉🏻 In this tutorial, you'll build a simple Nuxt application with Deno that will display a list of dinosaurs and allow you to learn more about each one when you click on the name.
👉🏻 Alexander Lichter is joined by Daniel Roe, full-time open source developer and lead of the Nuxt team to go through some notable events of 2024 in the Vue and Nuxt ecosystem.
👉🏻 Tailwind CSS v4.0 is a major release that focuses on performance improvements, with up to 5x faster full builds and over 100x faster incremental builds.
Saturday, January 10, 2026 Bob Weir is gone . # Today's song: Playing in the Band . # What's happening with ICE is like January 6 four years later with billions of dollars behind it and many months of planning and studying history for prior art. # As I listened to the mayor of Minneapolis speak I thought he was going say "get the fuck out of Minneapolis" but of course he couldn't say that and then he said it. # I'm doing little demos of stuff I'm working on in WordLand, here's a narrated demo that shows how instant updates are going. As often the recording level is too low, so turn up the volume if you want to hear the comments. A productive Saturday session. # John Johnston , a longtime friend of UserLand and my newer products, asks how WordLand connects with FeedLand. Two ways. 1. FeedLand has an API, still working on it, but it will be public. 2. FeedLand has an outbound websockets interface , which is already public,...
Saturday, April 5, 2025 I finally looked at my nest egg and was shocked to see the new number. Even worse that the dollars in the account will buy even less as the US dollar loses its value as the flight to safety currency. It's not a big surprise as the US behaves like a drunk Dunning-Kruger deluded schoolyard bully. What is amazing, if you think about it, is that we aren't having an emergency impeachment and trial to get him out of there. That could actually restore a bit of confidence of the outside world, showing that the power in the US is more with the people than it has been for a long time. Maybe our would-be overlords are scared too at what their idea has unleashed. Even if Trump weren't so inept, eventually whoever you choose as the monarch, they're going to behave like this. Inevitable. We could have a revolution right now, fix this, and set the country on the right course. We could do it. I believe we could. # And btw it could be worse ....
评论
发表评论