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

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

[复制链接]

0

主题

0

回帖

9

积分

管理员

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

5 G' O* A+ V" E6 I5 e 创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'4 @4 ~" S; Q2 p$ H+ Q2 u# P8 E1 R
import { ref } from 'vue'; e  B2 Y$ U) M. P
. ~7 ^# B1 q! J  g3 r' B& @1 k, l
export const useDeviceStore = defineStore('device', () => {8 O1 p' G2 o$ a( ~5 ^
  const isMobile = ref(false)& J% h1 r' Z8 ~9 U( \9 [
  let mediaQuery: MediaQueryList | null = null
2 o# ]3 V; L6 n( ?& X3 N# @' F( }2 r" z* x# ^
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {
9 j/ V+ V; s5 y- {: l# U, P3 e9 Z    isMobile.value = e.matches
! f7 A, {. Z9 _; V. ?9 t  }
( @- L2 K- I$ Z
8 @. E, o0 M# \; K( K  //

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2026-6-21 15:17:46 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'
. h- v! ^* `. \import { ref } from 'vue'3 ]! ^! {& M( p8 g, X
( H/ `) G$ R* N! V2 H, V
export const useDeviceStore = defineStore('device', () => {  X; {0 a2 h; O; b* N5 a6 f
  const isMobile = ref(false)
7 t  h6 w3 G0 k) I5 J  let mediaQuery: MediaQueryList | null = null) P% N5 a& [; {
1 H2 a4 c4 M# K7 n5 v3 D- |0 h
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {9 h6 Q; N9 G2 |
    isMobile.value = e.matches
' o. _* y3 A" I& v2 a8 n! P  }& r# I8 Z5 Q; w9 X

! d  l& B  ?5 s- y( o  //

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2026-6-21 15:17:47 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia'; V2 c" T% l7 z- r: x5 H
import { ref } from 'vue'# W3 o' h. @( E* W' a) T+ v

/ l( a7 R) b8 E" Z6 U0 ^export const useDeviceStore = defineStore('device', () => {# W0 t- {0 f9 @
  const isMobile = ref(false)
1 q* w' V! K% F$ m6 E  let mediaQuery: MediaQueryList | null = null
4 b1 M1 T9 U( e5 g5 ?
5 F' w, {* N* O+ Y  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {) o3 z" j! f* g) |/ [2 ~+ Y
    isMobile.value = e.matches
3 q% x6 o; x* E( y5 F- n9 C, Z  }3 k1 u" y$ \( q, S

9 v4 w( |. Y. ~  //

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2026-6-21 15:17:48 | 显示全部楼层
创建 Pinia 全局 Store新建文件 src/stores/device.ts。我们把设备监听逻辑直接写在 Store 内部。typescriptimport { defineStore } from 'pinia', l7 w' n! R1 j5 N3 }% \' g
import { ref } from 'vue'
/ O! C, B% f/ ?+ n% O/ w9 T$ o1 q0 O" r9 t% j! V  \! i. \
export const useDeviceStore = defineStore('device', () => {
  f) d3 W  X2 S" d) e) F: h5 q+ k  const isMobile = ref(false)  L! q" ]% M" {* Q* B+ e
  let mediaQuery: MediaQueryList | null = null9 S% Q6 R" W1 B" ~" ^, v  [
6 ]: E1 I0 j+ t4 R- Y% L( P) s
  const updateDevice = (e: MediaQueryListEvent | MediaQueryList) => {  ~& \) r, `- u3 y: m
    isMobile.value = e.matches
+ q( N7 u0 y& E' K6 z+ f: r: H  }* ^" ]( R* i2 i1 |5 m" m
' F6 {# @2 C, B0 M* y4 ]+ ?, O4 a! I
  //
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 22:15 , Processed in 0.027050 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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