中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

仿牌做獨立網(wǎng)站可靠嗎全球搜索

仿牌做獨立網(wǎng)站可靠嗎,全球搜索,極簡個人網(wǎng)站模板,新建的網(wǎng)站需要維護(hù)嗎集中式狀態(tài)管理工具—pinia vue3中使用pinia作為集中式狀態(tài)管理工具,替代vue2中的vuex。 pinia文檔可參考: https://pinia.web3doc.top/introduction.html 1.項目集成pinia 安裝pinia依賴: npm install pinia在main.ts中引入pinia import { createApp } from vu…

集中式狀態(tài)管理工具—pinia

vue3中使用pinia作為集中式狀態(tài)管理工具,替代vue2中的vuex。

pinia文檔可參考: https://pinia.web3doc.top/introduction.html

1.項目集成pinia

安裝pinia依賴:

npm install pinia

在main.ts中引入pinia

import { createApp } from 'vue'
import App from './App.vue'// 從pinia庫引入createPinia方法
import { createPinia } from 'pinia'//調(diào)用createPinia方法創(chuàng)建pinia對象,設(shè)置到APP中
createApp(App).use(createPinia()).mount('#app')

2.定義store

pina提供了defineStore方法創(chuàng)建store,store作為集中式狀態(tài)管理的實體,可被任意組件讀取/寫入數(shù)據(jù)。定義的store一般放在src/stores目錄下。

import {defineStore} from 'pinia'// 定義并暴露一個store
export const useXXXStore = defineStore('XXX', {// 配置信息
})

defineStore方法接收兩個參數(shù),store的唯一標(biāo)識符和store的配置對象。其中,store配置對象中可以包含 state函數(shù)、actions對象、getters對象。
state中可以定義狀態(tài)信息,getters基于state定義計算屬性,actions中定義state相關(guān)的操作方法。以下結(jié)合案例進(jìn)行說明:

// src/stores/clock.tsimport { defineStore } from 'pinia'export const useClockStore = defineStore('clock', {state: () => {return { hourHand: 0,minuteHand: 0,secondHand: 0}},getters:{time() {return this.hourHand +"時: "+this.minuteHand +"分: "+this.secondHand +"秒";}},actions: {increHour() {this.hourHand++;},getTime() {return this.time;}},
})

state中包含3個狀態(tài)屬性:hourHand和minuteHand和secondHand,初始值和默認(rèn)值為0;
getters中定義了一個獲取時間的方法time():根據(jù)狀態(tài)值計算出時間信息;
actions中定義了一個修改狀態(tài)變量的方法和一個獲取計算屬性的方法。

3.使用store

在任意組件中,可以引入和使用章節(jié)2中定義的store,方式如下:

import { useClockStore } from '@/stores/clock'
const clockStore = useClockStore()

得到clockStore這個store后,可以直接在template或者script腳本中通過屬性名獲取state的屬性(含計算屬性):

clockStore.time
clockStore.hourHand
clockStore.minuteHand
clockStore.secondHand

也可以調(diào)用store在actions中定義的方法:

clockStore.increHour()
clockStore.getTime()

使用章節(jié)2中定義的clock.ts完整的案例組件如下所示:

<template>
<div><p><span>{{clockStore.hourHand}}</span><span>:</span><span>{{clockStore.minuteHand}}</span><span>:</span><span>{{clockStore.secondHand}}</span></p><button @click="addHour">addHourBtn</button><button @click="showTime">showTimeBtn</button></div>
</template><script lang="ts" setup>import { useClockStore } from "@/stores/clock.ts";const clockStore = useClockStore();function addHour() {clockStore.increHour();}function showTime() {alert(clockStore.time);}
</script>

此時,clockStore中的狀態(tài)屬性和計算屬性作為響應(yīng)式數(shù)據(jù)。
除了上述通過store中actions定義的方法外,還可通過以下方式直接修改狀態(tài)值:

clockStore.hourHand=12// 批量修改
clockStore.$patch({hourHand:12,minuteHand:30,secondHand:0
})

4.響應(yīng)式狀態(tài)提取

章節(jié)3中提到過clockStore對象的狀態(tài)屬性和計算屬性作為響應(yīng)式數(shù)據(jù),且可以直接操作clockStore對象的屬性。
但是如果將其進(jìn)行提取,則會失去響應(yīng)式:

// clockStore.hourHand為響應(yīng)式,修改為12后,頁面會發(fā)生變化
clockStore.hourHand=12// hour不是響應(yīng)式對象
let hour = clockStore.hourHand

可以通過pinia的storeToRefs為其提供了一個解決方案:

import { storeToRefs } from 'pinia'// 根據(jù)狀態(tài)名稱進(jìn)行提取
const {hourHand, minuteHand,secondHand} = storeToRefs(clockStore)
hourHand.value = hourHand.value +100;

此時,可以在template結(jié)構(gòu)中直接使用hourHand, minuteHand,secondHand,而不需要再使用clockStore.hourHand, clockStore.minuteHand,clockStore.secondHand.
解析出的數(shù)據(jù)為ObjectRefImpl類型,因此在script腳本中,修改和獲取值時需要使用.value進(jìn)行值的提取。

5.訂閱store狀態(tài)變化

可以通過store對象的$subscribe方法監(jiān)聽狀態(tài)的變化,使用如下所示:

import { useClockStore } from "@/stores/clock.ts";
const clockStore = useClockStore();clockStore.$subscribe((mutate, state)=>{// 定制操作console.log(mutate)console.log(state)
})

mutate中包含了發(fā)生變化的屬性key以及變化前后的值;state為更新后的狀態(tài)對象。
mutate參數(shù)打印信息如下:

{storeId: "clockStore", type: "direct", events:{key: "hourHand", oldValue: 0, newValue: 1}}

state參數(shù)打印信息如下:

Proxy {hourHand: 1, minuteHand: 0, secondHand: 0}
http://www.risenshineclean.com/news/55471.html

相關(guān)文章:

  • 上海網(wǎng)站建設(shè)滬icp備手機(jī)百度app下載安裝
  • 北京做網(wǎng)站建設(shè)的公司哪家好電銷系統(tǒng)
  • 上海網(wǎng)站建設(shè)公司招聘網(wǎng)絡(luò)營銷策略存在的問題
  • 煙臺h5網(wǎng)站建設(shè)公司投稿網(wǎng)
  • 武漢 網(wǎng)站制作網(wǎng)絡(luò)優(yōu)化seo是什么工作
  • 相親網(wǎng)站做期貨現(xiàn)貨貴金屬的人產(chǎn)品推廣方案ppt
  • 自己建網(wǎng)站數(shù)據(jù)怎么做石家莊抖音seo
  • 安徽合肥做網(wǎng)站的公司最新熱點新聞
  • 拖拽網(wǎng)站怎么做的小紅書kol推廣
  • 移動網(wǎng)站建設(shè)哪家好什么平臺可以打廣告做宣傳
  • 網(wǎng)站建設(shè)分金手指排名十百度網(wǎng)絡(luò)電話
  • 響應(yīng)式制作網(wǎng)站建設(shè)線上教育培訓(xùn)機(jī)構(gòu)十大排名
  • 網(wǎng)站導(dǎo)航圖怎么做百度推廣登錄網(wǎng)站
  • 網(wǎng)站正在建設(shè)中 html源碼快手作品免費推廣軟件
  • 海安網(wǎng)站開發(fā)seo教程排名第一
  • 大公司網(wǎng)站色彩設(shè)計萬網(wǎng)域名查詢官網(wǎng)
  • 做有獎競猜網(wǎng)站違法嗎網(wǎng)站搭建需要多少錢?
  • 做網(wǎng)站php與python做推廣怎么賺錢
  • 做ppt的軟件模板下載網(wǎng)站有哪些網(wǎng)站建站公司
  • 商丘銷售網(wǎng)站制作自媒體
  • 百度免費網(wǎng)站怎樣建設(shè)網(wǎng)絡(luò)推廣的重要性與好處
  • 上海網(wǎng)站建設(shè)公司排名外包接單平臺
  • 葫蘆島建設(shè)信息網(wǎng)站企業(yè)建站都有什么網(wǎng)站
  • 閑魚怎么做釣魚網(wǎng)站廣告資源發(fā)布平臺
  • 網(wǎng)站怎么解析到域名百度地圖網(wǎng)頁版進(jìn)入
  • 徐州專業(yè)網(wǎng)站制作公司網(wǎng)址注冊在哪里注冊
  • 百度搜索seo優(yōu)化技巧寧波seo外包推廣排名
  • 微信內(nèi)部劵網(wǎng)站怎么做長沙百度首頁優(yōu)化排名
  • 個人建設(shè)網(wǎng)站還要備案么公司網(wǎng)站建設(shè)需要多少錢
  • 推薦個做兼職的網(wǎng)站做網(wǎng)上推廣