vue create vue3
选第三项 自己配置
配置如下 (上下切换选项 空格选中和取消)
回车下一步 具体设置如下图 根据个人需求选择 没有对于错 不要纠结
回车下一步 项目生成
官网地址
import { InjectionKey } from 'vue' import { createStore, useStore as baseUseStore, Store } from 'vuex' export interface Conut { count: number } export interface Animal { name: string, // age: number } export interface GlobalData { animal: Animal, conut: number } export const key: InjectionKey<Store<GlobalData>> = Symbol() export const store = createStore<GlobalData>({ state: { conut: 0, animal: { name: 'dog', age: 123 } }, mutations: { }, actions: { }, modules: { } }) // define your own `useStore` composition function export function useStore() { return baseUseStore(key) }
<template> <div class="row"> <div>一个数字:</div> <div>{{ count }}</div> </div> <div class="row"> <div>动物信息</div> <div>名字:{{ animal.name }} 年龄:{{ animal.age }}</div> </div> </template> <script lang="ts"> import { defineComponent } from "vue"; import { useStore } from "../store/index"; export default defineComponent({ setup() { const store = useStore(); const count = store.state.conut; const animal = store.state.animal; return { count, animal, }; }, }); </script> <style scoped> .row { display: flex; } </style>