041、Vue3+TypeScript基础,使用pinia库来储存数据

news/2024/9/12 4:33:05/文章来源:https://www.cnblogs.com/tianpan2019/p/18372718

01、输入npm install pinia

 02、main.js代码如下:

// 引入createApp用于创建Vue实例
import {createApp} from 'vue'
// 引入App.vue根组件
import App from './App.vue'//第一步:引入pinia
import {createPinia} from 'pinia'const app = createApp(App);//第二步:创建pinia实例
const pinia = createPinia()
//第三步:将pinia实例挂载到Vue实例上
app.use(pinia)// App.vue的根元素id为app
app.mount('#app')

03、创建一个store目录,并创建count.ts代码如下:

import {defineStore} from 'pinia'export const useCountStore =defineStore('count', {//真正储存数据的地方
        state() {return {sum: 6,talklist: [{id: 'a001', title: '1今天你想我了没'},{id: 'a002', title: '2今天你想我了没'},{id: 'a003', title: '3今天你想我了没'},]}}})

04、目录结构如下:

 05、App.vue代码如下:

<template><div class="app"><h2 class="title">App.Vue</h2><Page1/><br><Page2/></div>
</template><script lang="ts" setup name="App">
import Page1 from "@/view/Page1.vue";
import Page2 from "@/view/Page2.vue";
</script><style scoped>
.app {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;
}.nav-button {display: inline-block; /* 让链接显示为块级元素,以便应用宽度和高度 */padding: 10px 20px; /* 内边距 */margin: 0 5px; /* 外边距,用于按钮之间的间隔 */text-decoration: none; /* 移除下划线 */color: white; /* 文本颜色 */background-color: #007bff; /* 背景颜色 */border-radius: 5px; /* 边框圆角 */transition: background-color 0.3s; /* 平滑过渡效果 */
}.nav-button:hover {background-color: #0056b3; /* 鼠标悬停时的背景颜色 */
}.nav-button.router-link-active {background-color: #28a745; /* 当前激活(路由匹配)时的背景颜色 */
}.mai-content {/* 添加边框样式 */border: 2px solid #000; /* 边框宽度、样式和颜色 */border-radius: 5px; /* 可选:添加边框圆角 */padding: 20px; /* 可选:给内部内容添加一些内边距 */margin: 20px; /* 可选:给元素添加一些外边距,以便与其他元素隔开 */
}
</style>

06、Page1.vue代码如下:

<template><div class="mypage"><h2>当前求和为:{{ countStore.sum }}</h2><select v-model="n"><option :value="1">1</option><option :value="2">2</option><option :value="3">3</option></select><button @click="add"></button><button @click="min"></button></div>
</template><script lang="ts" name="page1" setup>
import {ref} from "vue";
import {useCountStore} from "@/store/count";const countStore = useCountStore();
console.log('@@@',countStore);let sum = ref(1);
let n = ref(1);function add() {sum.value += n.value;
}function min() {sum.value -= n.value;
}
</script><style scoped>
.mypage {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;button {margin: 0 5px;}
}
</style>

07、Page2.vue代码如下:

<template><div class="mypage"><ul><li v-for="talk in myTalkStore.talklist" :key="talk.id">{{ talk.id }} -- {{ talk.title }}</li><br><li v-for="talk in myTalkStore.$state.talklist" :key="talk.id">{{ talk.id }} -- {{ talk.title }}</li></ul></div>
</template><script lang="ts" name="page2" setup>
import {useCountStore} from "@/store/count";const myTalkStore = useCountStore();
</script>
<style scoped>
.mypage {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;button {margin: 0 5px;}
}
</style>

08、界面如下:

 09、浏览器打开界面如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785121.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三维几何生成:多段线、圆弧

一、三维空间多段线几何 1 应用背景 ​​  opengl常用glLineWidth命令设置线宽,此线宽在透视投影中不会随着相机远近变化而缩放。项目中高版本glLineWidth命令失效,需要考虑如何快速、方便、宽度不变的多段线几何。方案a:纯shader绘制曲线,绘制到一个二维平面上,然后将平…

本地快速安装运行史上最强开源LLaMa3大模型

https://liaoxuefeng.com/blogs/all/2024-05-06-llama3/史上最强开源AI大模型——Meta的LLaMa3一经发布,各项指标全面逼近GPT-4。它提供了8B和70B两个版本,8B版本最低仅需4G显存即可运行,可以说是迄今为止能在本地运行的最强LLM。 虽然LLaMa3对中文支持不算好,但HuggingFac…

第二章 redis环境安装与配置

redis环境安装 redis的官方只提供了linux版本的redis,window系统的redis是微软团队根据官方的linux版本高仿的。 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1、下载和安装 下载地址:https://github.com/tporadowski/redis/releases使用以下命令启动redis服务…

CVSS(Common Vulnerability Scoring System)打分规则解读

CVSS(Common Vulnerability Scoring System)提供了一种根据漏洞的主要特征进行打分,反映其严重性的方法。CVSS 已成为被广泛使用的标准。 下面是CVSS 3.1版本计算器的界面截图,本文对Base Score的打分标准做解读,并提供一些建议。同时会列出每个维度选项的翻译。 Attack V…

插入排序详细解读

插入排序详细解读 图解 第一轮:从第二位置的 6 开始比较,比前面 7 小,交换位置。第二轮:第三位置的 9 比前一位置的 7 大,无需交换位置。第三轮:第四位置的 3 比前一位置的 9 小交换位置,依次往前比较。第四轮:第五位置的 1 比前一位置的 9 小,交换位置,再依次往前比…

一张图看懂SAP主要流程

一张图看懂SAP主要流程

第一章 redis简单介绍

一、引言 在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。而…

第17章_反射机制

该篇笔记,是因为想重新学一下Spring Cloud 和Spring Cloud Alibaba框架,但是b站尚硅谷的最新课程,使用SpringBoot3作为,单体服务的框架,而SpringBoot3最低要求JDK17,所以必须要学一下JDK8-JDK17之间的新特性。本来只想看,宋红康老师课程的第18章JDK8-17新特性,但是觉得…

qt静态编译 全自动编译qt静态库 qt5 windows安装qt (2024.2.23)

全自动编译qt5静态库(2024.2.23) 本教程是从无到有配置qt.io和vcpkg实现全自动编译qt5的静态库,使得您可以静态编译qt项目 0. 安装Visual Studio 2022 这个我就不多解释了,直接去官网下载社区版本,勾选使用C++的桌面开发安装好就行 1. 安装qt.io的开发环境 1.1 下载在线安装…

【python】面向对象之类成员(字段,方法)

1.类的成员可以分为三大类:字段、方法和属性注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。2.字段字段包括:普通字段和静态字段,他们…

2024.8.21

DATE #:20240821 ITEM #:DOC WEEK #:WEDNESDAY DAIL #:捌月拾捌TAGS< BGM = "琴师--要不要买菜" > < theme = oi-contest > < [NULL] > < [空] > < [空] >``` 此情可待成追忆,只是当时已惘然 -- 《锦瑟》 李商隐 ```T1 试卷答案(ex…

回溯part011

今天学习了回溯算法:基本知识,关键是那个模板 组合问题:画树状图+简单的剪枝 电话号码的组合问题,和经典组合问题的差别在于取不同集合中的组合,注意如何有限制的在for循环之前确定循环哪个数组,通过树状图确定for循环中i的大小。1. 基本知识回溯法也可以叫做回溯搜索法,…