👉🏻 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.
Sunday, January 5, 2025 Update: Bluesky images work again and thus the Great Art on Bluesky channel is back. If you're on Bluesky please subscribe. # The crazy thing about Bluesky's API is they took already standardized things like links and enclosures, and after 20+ years came up with new definitions. Makes our apps more expensive to maintain, and we waste time and human wear and tear on stupid bullshit make-work. Developers are people, and our work is already horribly overly complex, we're working at the edge of comprehension, and what the fukc let's throw some more unnecessary complication into the mix. Arrogance, narcissism, whatever the source is, it's not a good way to introduce yourself. And, even better, after you go through the maze they break it, with an error message about legacy blob bullshit. They've already done this, and they're just getting started. It's why I say they should just adapt to RSS instead of trying to forc...
评论
发表评论