<template>
<div class="about">
<h1>
DataSource {
{ store.count }}-{
{ store.double }}
<button @click="store.increment">+button>
<button @click="store.decrement">-button>
h1>
div>
template>
<script lang="ts" setup>
import {
useCounterStore} from '@/stores/counter'
// 丢掉响应式
// const {count,increment,double,decrement} = useCounterStore()
const store=useCounterStore()
script>
<style>
@media (width >= 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
style>
import {
ref, computed } from 'vue'
import {
defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => {
const count=ref(0)
const double=computed(()=>count.value*2)
const increment=()=>{
count.value++
}
const decrement=()=>{
count.value--
}
return{
count,
double,
increment,
decrement
}
})
创建editor.ts文件
import {
ref } from 'vue'
import {
defineStore } from 'pinia'
export const useEditorStore = defineStore('editor', () => {
// 开发模式
const debug=ref(false)
const toggleDebug=()=>{
debug.value=!debug.value
}
return{
debug,
toggleDebug
}
})
<template>
<div class="about" :class="{debug:editorStore.debug}" @click="editorStore.toggleDebug()">
<h1>Layouth1>
div>
template>
<script lang="ts" setup>
import {
useEditorStore} from '@/stores/editor'
const editorStore = useEditorStore()
script>
<style>
@media (width >= 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
.debug {
border: 2px dashed #afafaf;
}
}
style>
"dependencies": {
...
"@icon-park/vue-next":"1.4.2"