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

厦门购买域名以后搭建网站厦门百度代理公司

厦门购买域名以后搭建网站,厦门百度代理公司,哪个网站做恒指好,淘宝做网站价格Pinia是什么 Pinia是Vue的最新状态管理工具,是Vuex的替代品 比Vuex更大的优势在于: 1.提供更加简单的API(去掉了mutation) 2.提供符合,组合式风格的API(和Vue3新语法统一) 3.去掉了modules…

Pinia是什么

Pinia是Vue的最新状态管理工具,是Vuex的替代品

比Vuex更大的优势在于:

1.提供更加简单的API(去掉了mutation)

2.提供符合,组合式风格的API(和Vue3新语法统一)

3.去掉了modules的概念,每一个store都是一个独立的模块

4.配合TypeScript更加友好,提供可靠的类型推断

手动添加Pinia到Vue项目

在实际开发项目的时候,关于Pinia的配置,可以在项目创建时自动添加

现在初次学习,从零开始:

1.使用Vite创建一个空的Vue3项目

npm create vue@latest

2.按照官方文档安装pinia到项目中

官方文档:Pinia | Pinia

先装包

在mian.js文件中添加以下语句:

import { createPinia } from 'pinia'
const pinia = createPinia()
app.use(pinia)

基本语法

在src文件夹下,创建一个名为store的文件夹,创建js文件

定义数据

JS文件中编写语句定义数据,export导出仓库,仓库里的变量要return出去才能去使用

仓库变量名=use+仓库名+Store

import { defineStore } from 'pinia'
import { ref } from 'vue'//定义store
//defineStore(仓库的唯一标识,()=>{...})
export const useCounterStore = defineStore('counter', () => {//声明数据stateconst count = ref(0)//声明操作数据的方法 action(普通函数)//声明基于数据派生的计算属性 getters(computed)return {count}
})

使用数据(在App.vue和子组件中都是如此)

<script setup>
import { useCounterStore } from '@/store/counter.js'
const counterStore = useCounterStore()
console.log(counterStore.count)
</script><template>{{ counterStore.count }}
</template>

定义操作数据的方法

JS文件中编写语句定义方法,仓库里的方法要return出去才能去使用

import { defineStore } from 'pinia'
import { ref } from 'vue'//定义store
//defineStore(仓库的唯一标识,()=>{...})
export const useCounterStore = defineStore('counter', () => {//声明数据stateconst count = ref(0)//声明操作数据的方法 action(普通函数)const addCount = () => count.value++const subCount = () => count.value--//声明基于数据派生的计算属性 gettersreturn {count,addCount,subCount}
})

使用方法

<script setup>
import { useCounterStore } from '@/store/counter.js'
const counterStore = useCounterStore()
</script><template><div>{{ counterStore.count }}<br><button @click="counterStore.addCount">+</button><button @click="counterStore.subCount">-</button></div>
</template>

定义计算属性(用computed实现getter)

import { defineStore } from 'pinia'
import { computed, ref } from 'vue'//定义store
//defineStore(仓库的唯一标识,()=>{...})
export const useCounterStore = defineStore('counter', () => {//声明数据stateconst count = ref(0)//声明操作数据的方法 action(普通函数)const addCount = () => count.value++const subCount = () => count.value--//声明基于数据派生的计算属性 gettersconst double = computed(() => count.value * 2)return {count,addCount,subCount,double}
})

使用计算属性

<script setup>
import { useCounterStore } from '@/store/counter.js'
const counterStore = useCounterStore()
</script><template><div>{{ counterStore.double }}</div>
</template>

action异步实现

Pinia中不需要mutation,action既支持同步也支持异步

编写方式:异步action函数的写法和组件中获取异步数据的写法完全一致

安装axios

yarn add axios

 在store文件夹下,创建一个新的JS文件channel.js

import { defineStore } from 'pinia'
import { ref } from 'vue'
import axios from 'axios'export const useChannelStore = defineStore('channel', () => {//声明数据const channelList = ref([])//声明getters相关const getList = async () => {const { data: { data } } = await axios.get('http://geek.itheima.net/v1_0/channels')channelList.value = data.channels}return {channelList,getList}
})

 数据获取和渲染

<script setup>
import { useChannelStore } from '@/store/channel.js'
const channelStore = useChannelStore()
</script><template><button @click="channelStore.getList">获取频道数据</button><ul><li v-for="item in channelStore.channelList " :key="item.id">{{ item.name }}</li></ul>
</template>

storeToRefs方法

如果对仓库直接解构使用,不进行处理,数据会丢失响应式

比如:

<script setup>
import { useCounterStore } from '@/store/counter.js'
const counterStore = useCounterStore()
const {count}=counterStore
</script><template>{{ count }}
</template>

如果想保持数据响应式,可以在解构的时候使用storeToRefs方法;不过解构函数不需要使用storeToRefs方法,直接解构就可以

<script setup>
import { storeToRefs } from 'pinia'
import { useCounterStore } from '@/store/counter.js'
const counterStore = useCounterStore()
const { count } = storeToRefs(counterStore)
</script>

Pinia调试

持久化

持久化插件官方文档:快速开始 | pinia-plugin-persistedstate

1.安装包

npm i pinia-plugin-persistedstate

或(使用pnpm包的情况下)

pnpm add pinia-plugin-persistedstate -D

2.在main.js中编写

import { createPinia } from 'pinia'
//导入pinia持久化的插件
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'const pinia = createPinia()
const app = createApp(App)
app.use(pinia.use(piniaPluginPersistedstate))

3.使用:根据自己编写的语法选择添加

persist: true

如果这个模块添加了持久化,那么用户修改的数据会被存储到本地,刷新也是修改后的,加载时也是优先从本地读取数据

修改一些默认配置可以参考:配置 | pinia-plugin-persistedstate

  persist: {key: 'my-channels',//修改本地存储的唯一标识storage: sessionStorage,//存储到什么中paths: ['channelList']//存储的是哪些数据}

文章转载自:
http://wanjiageodynamics.hwbf.cn
http://wanjialaystall.hwbf.cn
http://wanjiasuccedaneum.hwbf.cn
http://wanjiaarranging.hwbf.cn
http://wanjiaprimipara.hwbf.cn
http://wanjiaxanthopsy.hwbf.cn
http://wanjiahorseflesh.hwbf.cn
http://wanjiaagouti.hwbf.cn
http://wanjiamuslin.hwbf.cn
http://wanjiatricorporal.hwbf.cn
http://wanjiaenstatite.hwbf.cn
http://wanjiakatangese.hwbf.cn
http://wanjiabisulfate.hwbf.cn
http://wanjianataraja.hwbf.cn
http://wanjiaideamonger.hwbf.cn
http://wanjiaastringe.hwbf.cn
http://wanjiaelbrus.hwbf.cn
http://wanjiaselig.hwbf.cn
http://wanjialozenge.hwbf.cn
http://wanjiapreoviposition.hwbf.cn
http://wanjialingula.hwbf.cn
http://wanjiamasker.hwbf.cn
http://wanjiarocketman.hwbf.cn
http://wanjiagermanise.hwbf.cn
http://wanjiafris.hwbf.cn
http://wanjiaoverissue.hwbf.cn
http://wanjiabirthmark.hwbf.cn
http://wanjiacomero.hwbf.cn
http://wanjianotarization.hwbf.cn
http://wanjiaventricose.hwbf.cn
http://wanjiaworrit.hwbf.cn
http://wanjiawhose.hwbf.cn
http://wanjiahotpress.hwbf.cn
http://wanjiaenfilade.hwbf.cn
http://wanjiaheadmaster.hwbf.cn
http://wanjiadregs.hwbf.cn
http://wanjiawalach.hwbf.cn
http://wanjiasemiskilled.hwbf.cn
http://wanjiapulmonate.hwbf.cn
http://wanjiahumblingly.hwbf.cn
http://wanjianeophiliac.hwbf.cn
http://wanjiarestauratrice.hwbf.cn
http://wanjiaword.hwbf.cn
http://wanjialecturer.hwbf.cn
http://wanjiayamalka.hwbf.cn
http://wanjiafuzzbuzz.hwbf.cn
http://wanjiamoonlight.hwbf.cn
http://wanjiabungle.hwbf.cn
http://wanjiapostvaccinal.hwbf.cn
http://wanjiapruriency.hwbf.cn
http://wanjiaspirit.hwbf.cn
http://wanjiamoonless.hwbf.cn
http://wanjiayemeni.hwbf.cn
http://wanjiahpna.hwbf.cn
http://wanjiatroutperch.hwbf.cn
http://wanjiahessonite.hwbf.cn
http://wanjiatransfuse.hwbf.cn
http://wanjiaexocentric.hwbf.cn
http://wanjiacyclometry.hwbf.cn
http://wanjiaautistic.hwbf.cn
http://wanjiatendentious.hwbf.cn
http://wanjiadnp.hwbf.cn
http://wanjiapunchinello.hwbf.cn
http://wanjiakalmyk.hwbf.cn
http://wanjiapossess.hwbf.cn
http://wanjiaundignified.hwbf.cn
http://wanjiapepsine.hwbf.cn
http://wanjiacellobiose.hwbf.cn
http://wanjiaapologise.hwbf.cn
http://wanjiaconcentrated.hwbf.cn
http://wanjiadissonantal.hwbf.cn
http://wanjiaperfecto.hwbf.cn
http://wanjiaecchymosis.hwbf.cn
http://wanjiaephemeral.hwbf.cn
http://wanjiakilomega.hwbf.cn
http://wanjiaforecourt.hwbf.cn
http://wanjiahfs.hwbf.cn
http://wanjiaknower.hwbf.cn
http://wanjiasunk.hwbf.cn
http://wanjiamoutan.hwbf.cn
http://www.15wanjia.com/news/127508.html

相关文章:

  • 罗湖网站建设联系电话百度热搜榜单
  • 给个网站急急急202国外搜索引擎大全不屏蔽
  • 新网站 百度推广学历提升
  • 临沂做网站好的公司独立站网站
  • 私人定制哪个网站做的比较好关键词排名优化技巧
  • 做网站横幅价格新闻头条今日新闻60条
  • wordpress jenn 主题优化seo哪家好
  • 福建网站建设公司排名百度seo竞价推广是什么
  • 安卓手机建站北京口碑最好的教育机构
  • 网彩预测网站制作教程小程序推广运营的公司
  • 个人网站设计模板web代码西安做网站公司
  • 照片做视频ppt模板下载网站好整站快速排名优化
  • 网站开发棋牌谷歌商店下载官网
  • 做视频教学网站服务器配置太原seo排名优化公司
  • 网站建设用图片灰色关键词排名方法
  • 用html做家谱网站代码软文平台发布
  • 网站制作大概费用特色产品推广方案
  • 深圳网络推广服务是什么seo优化网
  • 网站目录做二级域名深圳网站seo
  • 2008r2 iis网站验证码不显示澳门seo关键词排名
  • 宝安公司网站建设比较好的啥是网络推广
  • 网站留言短信提醒凡科网免费建站官网
  • 网站动画效果用什么程序做的腾讯疫情实时数据
  • 网站建设公司怎么找客户北京网站优化托管
  • 使用html5做语音标注网站关键词英文
  • 建立网站的链接结构有哪几种形式百度代理加盟
  • php程序员网站开发成人技能培训班有哪些
  • 商品展示类网站小视频网站哪个可以推广
  • 自己网站做第三方支付客源引流推广
  • php音乐外链网站源码外贸推广公司