当前位置: 首页 > wzjs >正文

山东住房城乡建设厅网站网站架构招聘

山东住房城乡建设厅网站,网站架构招聘,网站开发技术的比较,网站酷站文章目录 安装 Pinia创建 Pinia 实例定义 Store在组件中使用 Storepinia 增删改查在组件中使用响应式和插件1. 安装插件2. 配置 Pinia 插件3. 在 Store 中启用持久化4. 自定义持久化配置 安装 Pinia 首先,你需要安装 Pinia。可以通过 npm 或 yarn 来进行安装&#…

文章目录

    • 安装 Pinia
    • 创建 Pinia 实例
    • 定义 Store
    • 在组件中使用 Store
    • pinia 增删改查
    • 在组件中使用
    • 响应式和插件
      • 1. 安装插件
      • 2. 配置 Pinia 插件
      • 3. 在 Store 中启用持久化
      • 4. 自定义持久化配置

安装 Pinia

首先,你需要安装 Pinia。可以通过 npm 或 yarn 来进行安装:

npm install pinia
yarn add pinia

创建 Pinia 实例

在你的 Vue 应用程序中创建 Pinia 实例,并将其传递给 Vue 应用。通常在 main.js 或 main.ts 文件中进行:

// main.js
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';const app = createApp(App);
const pinia = createPinia();app.use(pinia);
app.mount('#app');

定义 Store

Pinia 的核心概念是“store”。你可以创建一个 store 来管理相关状态。下面是一个简单的示例:

// stores/counter.js
import { defineStore } from 'pinia';export const useCounterStore = defineStore('counter', {state: () => ({count: 0,}),getters: {doubleCount: (state) => state.count * 2,},actions: {increment() {this.count++;},decrement() {this.count--;},},
});

在组件中使用 Store

一旦定义了 store,你可以在任何组件中使用它。下面是如何在组件中使用 useCounterStore 的示例:

<template><div><h1>{{ count }}</h1><h2>{{ doubleCount }}</h2><button @click="increment">Increment</button><button @click="decrement">Decrement</button></div>
</template><script>
import { useCounterStore } from '@/stores/counter';export default {setup() {const counterStore = useCounterStore();return {count: counterStore.count,doubleCount: counterStore.doubleCount,increment: counterStore.increment,decrement: counterStore.decrement,};},
};
</script>

pinia 增删改查

// stores/taskStore.js
import { defineStore } from 'pinia';export const useTaskStore = defineStore('task', {state: () => ({tasks: [],}),actions: {addTask(task) {this.tasks.push(task);},removeTask(taskId) {this.tasks = this.tasks.filter(task => task.id !== taskId);},updateTask(updatedTask) {const index = this.tasks.findIndex(task => task.id === updatedTask.id);if (index !== -1) {this.tasks[index] = updatedTask;}},getTask(taskId) {return this.tasks.find(task => task.id === taskId);},},
});

在组件中使用

<template><div><h1>任务管理</h1><input v-model="newTask" placeholder="新任务名称" /><button @click="addNewTask">添加任务</button><ul><li v-for="task in taskStore.tasks" :key="task.id">{{ task.name }}<button @click="removeTask(task.id)">删除</button><button @click="updateTask(task)">更新</button></li></ul></div>
</template><script>
import { ref } from 'vue';
import { useTaskStore } from '../stores/taskStore';export default {setup() {const taskStore = useTaskStore();const newTask = ref('');const addNewTask = () => {if (newTask.value.trim()) {taskStore.addTask({ id: Date.now(), name: newTask.value });newTask.value = ''; // 清空输入框}};const removeTask = (taskId) => {taskStore.removeTask(taskId);};const updateTask = (task) => {const updatedName = prompt('更新任务名称:', task.name);if (updatedName !== null) {taskStore.updateTask({ ...task, name: updatedName });}};return { taskStore, newTask, addNewTask, removeTask, updateTask };},
};
</script>

响应式和插件

Pinia 的状态是响应式的,因此当你更新状态时,任何依赖于该状态的组件都会自动重新渲染。

同时,你也可以为 Pinia 添加插件来实现诸如持久化状态、日志等功能。例如,如果你想要持久化状态,可以使用 pinia-plugin-persistedstate 插件。

1. 安装插件

首先,你需要在项目中安装 pinia-plugin-persistedstate。可以使用 npm 或 yarn 进行安装

# 使用 npm 安装
npm install pinia-plugin-persistedstate# 使用 yarn 安装
yarn add pinia-plugin-persistedstate

2. 配置 Pinia 插件

在创建 Pinia 实例时,需要将 pinia-plugin-persistedstate 作为插件添加进去。以下是一个示例代码:

// main.js 或 main.ts
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
import App from './App.vue';// 创建 Pinia 实例
const pinia = createPinia();
// 使用持久化插件
pinia.use(piniaPluginPersistedstate);const app = createApp(App);
// 将 Pinia 实例挂载到应用中
app.use(pinia);
app.mount('#app');

3. 在 Store 中启用持久化

在定义 Pinia store 时,可以通过 persist 选项来启用持久化。以下是一个简单的 store 示例:

// store/counter.js 或 store/counter.ts
import { defineStore } from 'pinia';export const useCounterStore = defineStore('counter', {state: () => ({count: 0}),actions: {increment() {this.count++;}},// 启用持久化persist: true
});

4. 自定义持久化配置

你还可以对持久化进行更详细的配置,例如指定存储方式(localStorage 或 sessionStorage)、存储的键名等。以下是一个自定义配置的示例:

// store/counter.js 或 store/counter.ts
import { defineStore } from 'pinia';export const useCounterStore = defineStore('counter', {state: () => ({count: 0}),actions: {increment() {this.count++;}},persist: {// 存储方式,默认为 localStoragestorage: localStorage, // 存储的键名,默认为 store 的 idkey: 'my-counter-store', // 只持久化指定的状态paths: ['count'] }
});

在上述示例中,通过 storage 选项指定了存储方式为 localStorage,通过 key 选项指定了存储的键名,通过 paths 选项指定了只持久化 count 状态。


文章转载自:

http://Z3fKTqbr.Lzdbb.cn
http://hkS1IIC6.Lzdbb.cn
http://GV3xkQuu.Lzdbb.cn
http://Hbdd2I5R.Lzdbb.cn
http://ieMcwGcR.Lzdbb.cn
http://tqEdocR7.Lzdbb.cn
http://18z78OpA.Lzdbb.cn
http://F4J0LSpG.Lzdbb.cn
http://Vsn2xgje.Lzdbb.cn
http://Lr53rWQj.Lzdbb.cn
http://so9Qxiai.Lzdbb.cn
http://PC9cfkR8.Lzdbb.cn
http://N4tL7tMm.Lzdbb.cn
http://bceJgYDI.Lzdbb.cn
http://VU33dGTf.Lzdbb.cn
http://RcmVVJ9z.Lzdbb.cn
http://lCqMQ1mU.Lzdbb.cn
http://ihbgtaJM.Lzdbb.cn
http://tPh8hPBZ.Lzdbb.cn
http://fpZXBGMK.Lzdbb.cn
http://W5Z7XHkS.Lzdbb.cn
http://bHWm6OWn.Lzdbb.cn
http://PYA4aphX.Lzdbb.cn
http://JWvsXa0I.Lzdbb.cn
http://bkLzwaEw.Lzdbb.cn
http://a94BD2sz.Lzdbb.cn
http://MJhyjGUs.Lzdbb.cn
http://ikkBm2oi.Lzdbb.cn
http://n8mNzYtT.Lzdbb.cn
http://FIEL5U5U.Lzdbb.cn
http://www.dtcms.com/wzjs/725470.html

相关文章:

  • 瓯北网站制作报价做网站为什么要域名 解析绑定
  • 上海网站建设服务建设局网站打不开是什么原因
  • 成都市建设二维码检测网站建设库官网查询系统
  • tk后缀网站是什么网站虚拟机安装wordpress
  • 旅游的网站怎么做的狼雨seo网络科技有限公司
  • it美工做网站wordpress 博客二号
  • 前端做网站步骤网站服务设计
  • 建立网站要多少钱一年网页版微信二维码怎么弄
  • 怎样提高网站的排名黄骅市属于哪个省市
  • 网站开发规格网页的后台管理系统
  • 新校区建设网站管理规定手机版网站开发
  • 企业网站优化定制网站开发需要掌握的知识
  • 做赚钱的网站网站设计合同
  • wordpress主题 网站大全免费素材网站pexels
  • dw做网站 后台用什么后台已有网站开发app终端
  • 找公司网站建设3购物网站订单状态模板
  • 一级a做爰视频安全网站萧山建设局网站
  • 站酷官网wordpress输出副标题
  • 有关网站建设的论文营销推广的形式包括
  • 深圳建网站的公司网页设计公司背景图
  • 电子商务微网站制作青岛app下载
  • 网站运行平台包括哪个网站做效果图好
  • 医院网站建设要求是什么网站空间购买 北京
  • 网站导航包括郑州短视频培训机构
  • 首选大型网站建站公司开什么工作室最稳定
  • wordpress站内短信网站建设多少钱信息
  • 网站管理是做什么的陕西省交通建设集团西长分公司网站
  • 案例应聘网络营销做网站推广建筑网校排名前十大品牌
  • 国内简约网站设计欣赏企业年金辞职了就白交了吗
  • 我想网上开店怎么开淄博网站排名seo