找回密码
 注册
查看: 4|回复: 3

Pinia 全局状态,对于后期的其他组件文件处理方法

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2026-6-21 15:17:45 | 显示全部楼层 |阅读模式

- ~% T) G, }1 [6 I% n, K 创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
# O% [2 i5 B1 vimport { ref } from 'vue'
- z) ?$ g% B* E4 W, ^) R/ i& m1 X, x; y! j' Z  C/ d
export const useDeviceStore = defineStore('device', () => {
2 k3 g4 y. x5 ?  const isMobile = ref(false)* J1 e8 i' [: x
  let mediaQuery: MediaQueryList | null = null9 [+ J0 J: j- j% J) i3 |7 e

2 [! J" {+ z) J9 S) @$ P. Q  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
; P  L6 ?9 ]" t1 C    isMobile.value = e.matches
. V% n! K+ S0 ]- d7 u9 m. |  }
6 N- i, H! ~1 V3 o( c& l) g3 r1 P% R" Y1 u
  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:46 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
1 u  C3 D5 ~2 e3 Eimport { ref } from 'vue'/ Q+ Q( n3 ~2 r0 f/ w+ f) `

6 r1 g# O+ @& j9 Z) H1 [export const useDeviceStore = defineStore('device', () => {
. p) ]: ~; j. g  const isMobile = ref(false)
: x# F# U' h: q' s3 [  let mediaQuery: MediaQueryList | null = null! f& k* K! l% G8 _% z- v
  y7 m3 p% k: C! s& p9 H  l7 p
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
+ |) h; q6 I$ R' o) n+ t. M    isMobile.value = e.matches5 U; }% j3 u( R/ E* {" X
  }
( c' D9 l7 ~( P8 @; v$ D% |* v7 }7 s$ Y6 H0 V0 g! `6 d$ s: y# L4 S
  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:47 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'  G" b  J: _7 b' ]! \! |
import { ref } from 'vue'
1 I$ ?+ B7 p) q" a6 N' X# ^( _& b; ?8 w' s& e2 T- L/ r% F1 O* A6 a) m
export const useDeviceStore = defineStore('device', () => {7 V2 z/ t7 J( K9 \9 R3 N
  const isMobile = ref(false)5 q: C/ v! u6 p
  let mediaQuery: MediaQueryList | null = null
& n2 c. I0 u/ h' n3 D& {6 k) W/ O/ z$ E, S0 p: Y& h
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
' X* F& f# O  X* m    isMobile.value = e.matches9 L9 S' Q/ m1 b; z8 {9 H
  }
& Y# }, o0 G  l5 ~: l3 ~) k) R, ^+ s
  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:48 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'0 P0 r  N( j' }
import { ref } from 'vue'
6 X; O! x4 h6 y, M$ r  X: ~. ~  ^$ ]: f' H5 i
export const useDeviceStore = defineStore('device', () => {: D% c* C5 U9 v1 k! O" p  ]! Y
  const isMobile = ref(false)' `* ^" _; A$ Q- P$ N
  let mediaQuery: MediaQueryList | null = null
+ ^9 t9 V. B5 |- r5 x7 U1 \: Q7 P2 F" E$ T
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {# x7 ]5 Z+ j4 p" s. Z; Q
    isMobile.value = e.matches3 b6 R$ [8 A+ @% R# [
  }
" c" O+ Z% j; s4 o! ]2 w& i+ _) k% l; r
  //
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 23:14 , Processed in 0.020431 second(s), 21 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表