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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2026-6-21 15:17:45 | 显示全部楼层 |阅读模式
% f# c. p: o' ~- q# e& D, l
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
; q+ t5 e1 {8 B3 Aimport { ref } from 'vue'
# X% l% _$ s7 H/ d4 z; c; a/ q2 y* U$ X- E6 H/ h+ C; u8 p/ t
export const useDeviceStore = defineStore('device', () => {
$ X- @! Q1 i8 {- e  Q* q% l0 }  const isMobile = ref(false)
# }+ w/ q7 ~' K  let mediaQuery: MediaQueryList | null = null
  u3 j9 f) s4 U4 \: {, X6 E" @
& B* A0 h- [( H# \$ H9 F+ h  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
# P3 w7 c: ^) m    isMobile.value = e.matches
8 Z/ f9 ~% K" j! K/ _- I. p  }
1 S; h5 X0 }9 Q' q; ?
( Q/ f3 Q% A. u" E; l  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:46 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
7 ]: a! G$ a: F# w$ Uimport { ref } from 'vue'& F  O  S. |$ t8 ]
" e0 P! F% o" }& }6 z
export const useDeviceStore = defineStore('device', () => {% ~6 ]/ B' J  ~; D' D
  const isMobile = ref(false)
. P8 y- \( p+ }7 _  let mediaQuery: MediaQueryList | null = null
$ ~" u3 @' E- J/ s' s0 Y2 @& y2 ?, \7 m0 y
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {' y# w$ R& D/ v4 |7 k0 O
    isMobile.value = e.matches
! C2 x7 n# H+ {7 y+ S5 I+ J+ T' V8 ?  }& ~/ c4 ^' U7 Q9 {4 C. v* ^

; r3 X. `/ C+ G, Z* z7 ?: G  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:47 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia') H) F+ }3 V% u/ e8 A
import { ref } from 'vue'
) W/ ]% m" T! |, L+ K6 C6 t  I
* }' `0 Y7 V9 X5 l$ bexport const useDeviceStore = defineStore('device', () => {
1 s& |4 M2 E4 `$ v; z  const isMobile = ref(false)# G0 k. ^2 N, L; I
  let mediaQuery: MediaQueryList | null = null/ |  y1 d! m  e# z# Z/ b% ^

3 D7 n' E4 r9 c  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {% x% h5 R5 _: f
    isMobile.value = e.matches8 K/ F  ]/ e9 W, ?$ x. Z6 O
  }$ m: {8 D& _4 g; b' g8 m+ j

8 O) S5 D- u8 K; T* U' _  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:48 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
9 _8 ~& \6 O+ j' O+ R0 ximport { ref } from 'vue'5 v" C* b5 ~9 G) Q9 a2 M

7 T0 P) R$ m0 b6 @% ^export const useDeviceStore = defineStore('device', () => {
) h/ i! }1 e# ?1 z& E0 x  const isMobile = ref(false)9 \5 L6 ?4 d- h
  let mediaQuery: MediaQueryList | null = null& k+ ]6 v' r  f0 p+ s/ j1 X
8 r1 O8 Y$ u  C( v
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
. g$ i# ?0 r9 u1 g- y" K    isMobile.value = e.matches4 u# `  h# ~: u8 ]% o, `& Z2 {  S
  }) s$ e8 ?" y5 ~! e1 P
1 c. p% }0 t7 k! k1 @, p
  //
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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