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

平面设计常用网站环保网站案例

平面设计常用网站,环保网站案例,wordpress例行维护,网站和软件是怎么做的大家好,欢迎来到程序视点!我是小二哥! 前言 在VUE项目开发中,一些数据常常被多个组件频繁使用,为了管理和维护这些数据,就出现了状态管理模式。 今天小二哥要给大家推荐的不是VueX,而是称为新…

大家好,欢迎来到程序视点!我是小二哥!

前言

VUE项目开发中,一些数据常常被多个组件频繁使用,为了管理和维护这些数据,就出现了状态管理模式

今天小二哥要给大家推荐的不是VueX,而是称为新一代的状态管理工具的Pinia.js
Pinia

关于Pinia.js

Pinia.jsVue.js团队成员所开发的,是新一代的 Vuex,即 Vuex5.x,在 Vue3.0 项目的使用中备受推崇。

Pinia
它已经加入官方团队了哦!

Pinia.js 定位和特点:

  • 完整的 typescript 的支持;
  • 极其轻量,压缩后的体积只有1.6kb;
  • 去除 mutations,只有 stategettersactions(这是我最喜欢的一个特点);
  • actions 支持同步和异步;
  • 没有模块嵌套,只有 store 的概念,能够构建多个 storestore 之间可以自由使用,更好的代码分割;
  • 关联 Vue Devtools 钩子,提供更好地开发体验;

使用

安装脚手架vite

首先确保使用的脚手架是vite

// 安装vitenpm init vite@latest

安装依赖

npm install pinia --save

以上安装完成之后,可以在项目根目录的package.json文件内找到相关的信息(部分片段):

 {"dependencies": {"pinia": "^2.0.11","vue": "^3.2.25"},"devDependencies": {"@vitejs/plugin-vue": "^2.2.0","vite": "^2.8.0"}}

优化改造

因为需要在整个项目使用状态管理,因此需要在 main.js 文件里配置,以使它应用到整个应用(app):

 // main.jsimport { createApp } from 'vue'import App from './App.vue'// 导入构造函数import { createPinia } from 'pinia'// 实例化 Piniaconst pinia = createPinia()// 创建Vue应用实例appconst app = createApp(App)// 应用以插件形式挂载Pinia实例app.use(pinia)app.mount('#app')

定义状态仓库

 // src/store/index.js// 引入仓库定义函数import { defineStore } from 'pinia'// 传入2个参数,定义仓库并导出// 第一个参数唯一不可重复,字符串类型,作为仓库ID以区分仓库// 第二个参数,以对象形式配置仓库的state,getters,actions// 配置 state getters actionsexport const mainStore = defineStore('main', {// state 类似组件的data选项,函数形式返回对象state: () => {return {msg: '程序视点',counter: 0}},getters: {},actions: {}})

类似vuex,单独一个文件定义状态仓库并导出。
读取仓库内状态并改变
在需要使用状态的组件内需要先导入状态仓库:

 import { mainStore } from "../store/index.js";

再实例化仓库函数:

 const store = mainStore();

即可使用。

Store中State读取和修改

storeToRefs响应式函数
 <template><button @click="handleClick">修改状态数据</button><!-- 模板内不需要加.value --><p>{{store.counter}}</p><!-- 或者使用解构之后的 --><p>{{counter}}</p></template><script setup>// 导入状态仓库import { mainStore } from "../store/index.js";// 使普通数据变响应式的函数  import { storeToRefs } from "pinia";// 实例化仓库const store = mainStore();// 解构并使数据具有响应式const { counter } = storeToRefs(store);// 点击 + 1;function handleClick() {// ref数据这里需要加.value访问counter.value++;}</script>

可以像下面这样直接修改 state,但一般不建议这么做。

store.counter += 1;
通过 actions 去修改 state

action 里可以直接通过 this 访问。

export const mainStore = defineStore('main', {// state 类似组件的data选项,函数形式返回对象state: () => {return {msg: '程序视点',counter: 0}},getters: {},actions: {updateCount(){this.counter += 1;}}})
<script lang="ts" setup>
import { mainStore } from "../store/index.js";
const store = mainStore();userStore.updateCount();
</script>
$patch方法
对象形式修改

前面介绍的是少量数据的变更,如果涉及数据比较多,则推荐使用仓库实例的$patch方法,批量修改,虽然看起来和前面的几乎没有区别,但是会加快修改速度,对程序的性能有很大的好处。$patch传入一个对象,对象的属性就是各种状态。

 <template><button @click="handleClick">修改状态数据</button><p>{{msg}}</p><!-- 或者使用解构之后的 --><p>{{counter}}</p></template>​<script setup>// 导入状态仓库import { mainStore } from "../store/index.js";// 使普通数据变响应式的函数  import { storeToRefs } from "pinia";// 实例化仓库const store = mainStore();// 解构并使数据具有响应式const { msg,counter } = storeToRefs(store);​// 点击 + 1;修改字符串function handleClick() {store.$patch({msg: "pinia good!",counter: counter.value + 1,});}</script>
函数形式

上面例子中的$patch也可以传入一个函数,函数参数为state状态:

 <template><button @click="handleClick">修改状态数据</button><p>{{msg}}</p><!-- 或者使用解构之后的 --><p>{{counter}}</p></template><script setup>// 导入状态仓库import { mainStore } from "../store/index.js";// 使普通数据变响应式的函数  import { storeToRefs } from "pinia";// 实例化仓库const store = mainStore();// 解构并使数据具有响应式const { msg,counter } = storeToRefs(store);// 点击 + 1;修改字符串function handleClick() {store.$patch((state) => {state.msg = "pinia good!";state.counter++;});}</script>

以上就是关于 Pinia.js 用法的一些介绍。关于Pinia.js的基础操作可以通过下方阅读原文查看。Pinia.js 的内容还远不止这些,更多内容及使用有待大家自己探索。

Pinia官方文档
https://pinia.vuejs.org/

写在最后

【程序视点】助力打工人减负,从来不是说说而已!

后续小二哥会继续详细分享更多实用的工具和功能。持续关注,这样就不会错过之后的精彩内容啦!

如果这篇文章对你有帮助的话,别忘了【点赞】【分享】支持下哦~

http://www.yayakq.cn/news/643417/

相关文章:

  • 常宁市建设局网站wordpress页面图片如何排版
  • 网站开发需求确认书海宁市网站建设
  • 百度站长平台网站提交湖州网站设计建设
  • 网站建设询价邀请函wordpress当前分类链接地址
  • 宜昌便宜做网站网站建设方案风险分析
  • 永康住房和城乡建设局网站如何申请小程序
  • 淘宝客网站主题下载好看的模板图片
  • 门户网站 销售新手如何建网站
  • 微网站开发程序网站申请了如何上传到服务器
  • 宜昌市住房和城乡建设厅网站网站建设需求分析怎么写
  • 外贸企业网站系统源码wordpress登陆可见插件
  • 建设厅五大员证书查询网站网站整套模板
  • 惠州网站建设技术托管2022年最为成功的营销案例
  • 电子商务网站建设 期末考试试卷以及答案扬州网站优化
  • 购物网站开发项目意义百度浏览器主页网址
  • 网站维护的内容主要包括源码屋整站源码
  • 站长之家ip查询工具母婴网站建设的与功能模块
  • 网站管理系统推荐上海平台网站建设平台
  • 番禺制作网站技术wordpress里面如何加载百度地图
  • 织梦网站tel标签阿里云网站建设最后什么样子
  • 腾讯云服务器怎么搭建网站ssh网站怎么做
  • 做通信毕业设计的网站wordpress过滤
  • 北京未来科技城开发建设有限公司 网站编程猫的网站是什么
  • 寻找外贸客户的网站如何跟进网站建设的客户
  • 建设一个本地网站东莞seo优化公司
  • 不拦截网站的浏览器本地安装wordpress步骤
  • 精美网站设计欣赏建设网站建设方案
  • 网站keywords多少字网站建设柒首先金手指7
  • 广州制作公司网站的公司wordpress切换div组件
  • 做网站电话沧州南充房产信息