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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

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

  H9 b* S7 b8 r9 A 创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
7 T; W3 G  s$ Qimport { ref } from 'vue'
; L0 `( ?7 t/ ?& c3 j0 [/ ]; R" L! r1 Z% @3 g4 H
export const useDeviceStore = defineStore('device', () => {
: E3 v+ r. g% [' z' D+ n3 f  const isMobile = ref(false)+ t4 D9 n& }! s/ S4 b/ l! \( O
  let mediaQuery: MediaQueryList | null = null
4 |( H; k9 |# p6 m; W# d
6 L+ d$ f3 y- U5 b  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
; |% L- k" ]$ h, u# g) z6 p! l/ _9 n    isMobile.value = e.matches1 C  K  O3 A/ R0 Z8 n1 P
  }
: E* ?/ `2 p* ]6 A/ D
1 z/ a- a1 V7 [0 @* @  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:46 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'3 _9 {* T  m" d% v! ]
import { ref } from 'vue'4 v  u/ @, c! o0 G# a) L
4 w; s. {8 g0 \5 v. N
export const useDeviceStore = defineStore('device', () => {
# Y5 g2 F( Y  q- a) v( [  const isMobile = ref(false)6 D$ ~5 Z5 r' B2 x, h
  let mediaQuery: MediaQueryList | null = null- m6 p! b1 z, Y: _" w
/ |7 q; l& n4 ~/ c0 ?" }
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {' I4 N, o5 ?, e) M" Y0 W
    isMobile.value = e.matches
+ S0 a9 K# p1 O6 l' ?( j  }
, m4 P9 G4 ]( B  I9 Q3 {
, q1 t0 I* f) [$ l  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:47 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
/ S2 {- ]7 m  _% himport { ref } from 'vue'
( _) q, W- `. D" Y4 X- f5 L1 F3 _- N! S2 |
export const useDeviceStore = defineStore('device', () => {
; K7 G1 C( O! H2 U8 F/ G  const isMobile = ref(false); c/ N# m- Z7 R7 J4 I: [+ i
  let mediaQuery: MediaQueryList | null = null
8 R7 y6 r) W. y( `& a* p" q5 X  ]
. k1 x' K6 ]  x3 K% t  A  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
: V0 g# N7 |1 _9 t3 y' R3 k    isMobile.value = e.matches  {7 u) P! P  F" g2 J! z5 ~
  }3 K  b: B( D. {$ ?
3 J5 F( w1 P4 o6 F, m% P
  //

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2026-6-21 15:17:48 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
6 x5 ]! j2 S8 timport { ref } from 'vue'
3 W! y2 k/ n4 W/ Y, s' ^; b6 S) a! k' g; I4 c
export const useDeviceStore = defineStore('device', () => {
/ s8 T) G  ?5 q8 \  const isMobile = ref(false)
3 d$ L4 c* {* O8 U4 p  let mediaQuery: MediaQueryList | null = null# ^* K* h+ c$ B8 w) M4 k1 T

; p; X+ S& j+ z  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
7 V5 y7 h5 P% \( n- r    isMobile.value = e.matches
* W0 o9 T9 \$ r, \  }6 G+ R, B. d1 C8 }! k

& v% e6 s/ b) X# F% L5 _2 D- N  //
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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