“代驾”小程序&查漏补缺

vue3&part

watch

官方文档:https://cn.vuejs.org/api/reactivity-core.html#watch

功能:侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数。

javascript 复制代码
watch(
  () => tabName.value,
  (val) => {
    appType.value = tabsList.value[val]?.id
    paging.value.reload()
  },
)

watchEffect

官方文档:https://cn.vuejs.org/api/reactivity-core.html#watch

功能:立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行。

学到这里的时候,在会去复习一下vue3的md文档(名字叫vue3快速上手)

computed

官方文档:响应式 API:核心 | Vue.js

功能:接受一个 getter 函数,返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。它也可以接受一个带有 get 和 set 函数的对象来创建一个可写的 ref 对象。

javascript 复制代码
// 计算选中单品列表
const selectedCartList = computed(() => {
  return cartList.value.filter((v) => v.selected)
})

// 计算选中总件数
const selectedCartListCount = computed(() => {
  return selectedCartList.value.reduce((sum, item) => sum + item.count, 0)
})

// 计算选中总金额
const selectedCartListMoney = computed(() => {
  return selectedCartList.value
    .reduce((sum, item) => sum + item.count * item.nowPrice, 0)
    .toFixed(2)
})

store

官方文档:定义 Store | Pinia

功能:Pinia 是 Vue 的专属状态管理库,它允许你跨组件或页面共享状态。

javascript 复制代码
import { defineStore } from "pinia"
import { ref } from "vue"

export const useUserStore = defineStore(
  "user",  //第一个参数 这个字符串 "user" 是 store 的唯一标识符(ID)。在 Pinia 中,每个 store 必须具有唯一的 ID,以便在应用中区分不同的 store。
  () => {   //第二个参数 store 的状态和方法
    const userInfo = ref<Partial<IUserInfo> | null>()

    const setUserInfo = (val: IUserInfo) => {
      userInfo.value = val
    }

    const clearUserInfo = () => {
      userInfo.value = null
    }
    // 一般没有reset需求,不需要的可以删除
    const reset = () => {
      userInfo.value = null
    }
    const isLogined = computed(() => !!userInfo.value?.jwt)

    return {
      userInfo,
      setUserInfo,
      clearUserInfo,
      isLogined,
      reset,
    }
  },
  { //第三个参数 store 的配置选项
    persist: true,
// 用来配置是否将 store 的状态持久化到浏览器的 localStorage 或 sessionStorage
  },
)

Loash

官方文档:Lodash 简介 | Lodash中文文档 | Lodash中文网

防抖

官方文档:lodash.debounce | Lodash中文文档 | Lodash中文网

javascript 复制代码
// 记得引入
import _ from "lodash"
// 使用 debounce 包装 getQuestion
const debouncedGetQuestion = _.debounce((value) => getQuestion(value), 300)
// 输入
const onChange = ({ value }) => {
  isQuestion.value = true
  value = value.trim()
  if (!value) {
    onClear()
    return
  }
  debouncedGetQuestion(value) // 使用封装后的函数
}
// 查询
const onSearch = ({ value }) => {
  isQuestion.value = true
  value = value.trim()
  if (!value) {
    onClear()
    keyword.value = ""
    return
  }
  debouncedGetQuestion(value) // 使用封装后的函数
}

节流

官方文档:lodash.throttle | Lodash中文文档 | Lodash中文网

uniapp的生命周期

官方文档:App.vue/App.uvue | uni-app官网

http&接口请求方法

javascript 复制代码
// 分页查询常见问题列表
export const postQuestionList = (pageNum, pageSize, data) => {
  return http.post<questionListItem>(`/biz/question/questionList/${pageNum}/${pageSize}`, data)
}
相关推荐
徐小夕40 分钟前
万字长文!DeepSeek Super-agent × 企业知识库架构深度拆解与落地实践
前端·vue.js·github
陈随易1 小时前
TanStarter,从搭建到支付,一步到位开始赚美元
前端·后端·程序员
前端双越老师1 小时前
程序员 1v1 访谈系列第十二期:普通人没有核心竞争力
前端·ai编程·全栈
柳杉1 小时前
没有写一行代码:我用 Codex 制作 了一个 3D 智慧展厅可视化大屏
前端·ai编程·three.js
IT_陈寒2 小时前
Redis开发实战:从入门到精通
前端·人工智能·后端
恋猫de小郭2 小时前
Flutter Impeller Vulkan 内存持续上涨,问题没想到是文字阴影
android·前端·flutter
0xBADCODE2 小时前
2026 强网杯 Web 题 cwp · 全链路复盘
前端·安全·web安全·网络安全·系统安全·ctf
麦麦麦当劳大王10 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
小lu飞11 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
smallcelebration12 小时前
151 从0开始搭建后端项目
前端·firefox