👉🏻 This "Quick Start with Pinia" lesson on Pinia breaks down this powerful Vue state management library, showing you how to efficiently manage data across components.
👉🏻 This library is written using Vue 3 with Composition API, and the components are designed and written in a traditional Vue way possible, with full TypeScript support.
👉🏻 Lightweight and framework independent but offers Vue 2/3, Alpine.js and Svelte integrations.
🔥 Vue Tip: Avoid Side Effects in Computed Properties
It is considered bad practice to introduce side effects inside computed properties and functions because it makes the code unpredictable and hard to understand.
What is a side effect? In the context of computed properties, a side effect is a modification of the state's global state or the internal component state.
Let's take a look at an example with side effects:
1<script setup lang="ts">2import { computed, ref } from 'vue'34const firstName = ref('Michael')5const lastName = ref('Hoffmann')6const array = ref([])78const fullName = computed(() => {9 firstName.value = 'Mike' // side effect10 return `${firstName.value} ${lastName.value}`11})1213const reversedArray = computed(() => array.value.reverse()) // side effect, original array is mutated14</script>
Now let's change the code and remove the side effects:
1<script setup lang="ts">2import { computed, ref } from 'vue'34const firstName = ref('Michael')5const lastName = ref('Hoffmann')6const array = ref([])78const fullName = computed(() => `${firstName.value} ${lastName.value}`)9const reversedArray = computed(() => array.value.slice(0).reverse()) // .slice creates a copy of the array10</script>
Now the code is predictable and easy to understand. The computed properties fullNamefullName and reversedArrayreversedArray only depend on the values of firstNamefirstName, lastNamelastName, and arrayarray. They don't modify the global state or the internal component state.
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,...
评论
发表评论