当前位置: 首页 > news >正文

Vue3专题 - 响应式基础

大家好,我是Java1234_小锋老师,最近更新 《一天学会 Vue3 + Vite + element-plus UI框架 视频教程》专辑,感谢大家支持。

本课程主要介绍和讲解 Vue3框架,Vite构建工具,以及element-plus UI框架。Vue3核心知识介绍,Vite构建工具使用,以及element-plus UI框架的基础组件,配置组件,Form 表单组件,Data数据展示组件,Navigation导航组件,Feedback反馈组件,Container布局组件介绍和使用。

视频教程+课件+源码打包下载:

链接:https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd=1234
提取码:1234

具体位置 - > 第四阶段富客户端技术里面

Vue3专题 - 响应式基础

Vue3 的核心能力之一是响应式系统:数据变化时,依赖这些数据的视图或逻辑会自动更新。理解refreactivecomputedwatch,就能写出大部分常见交互。


1. 什么是响应式?

简单理解:

  1. 把普通数据变成「可追踪」的响应式数据
  2. 组件里用到这些数据时,Vue 会记录依赖关系
  3. 数据一改,相关界面自动重新渲染

Vue3 底层主要用Proxy实现响应式(比 Vue2 的Object.defineProperty更强大、更灵活)。


2. 核心 API 速览

API用途典型场景
ref包装基本类型或任意值计数、开关、字符串、对象也可以
reactive包装对象,得到深层响应式对象表单对象、配置对象
computed根据已有状态派生新值总价、过滤列表、全名
watch/watchEffect监听变化并执行副作用请求接口、本地存储、日志

3.ref—— 最常用

ref可以包装任意类型。在<script setup>里用.value读写;在模板里会自动解包,不用写.value

<script setup> import { ref } from 'vue' // 包装数字 const count = ref(0) // 包装字符串 const title = ref('Hello Vue3') function add() { count.value++ // 脚本里必须用 .value } </script> <template> <!-- 模板里直接用 count,不用 .value --> <h1>{{ title }}</h1> <p>当前计数:{{ count }}</p> <button @click="add">+1</button> </template>

要点:

  • 脚本中:count.value
  • 模板中:{{ count }}
  • ref既能包基本类型,也能包对象

运行截图:


4.reactive—— 适合对象

reactive专门用于对象(Object / Array),返回的是 Proxy 代理对象,不能整体替换,适合表单、配置这类结构。

<script setup> import { reactive } from 'vue' const form = reactive({ username: '', age: 18, hobby: ['读书', '跑步'] }) function update() { form.username = '小明' // 直接改属性,不需要 .value form.age++ form.hobby.push('游泳') } </script> <template> <p>用户名:{{ form.username }}</p> <p>年龄:{{ form.age }}</p> <p>爱好:{{ form.hobby.join('、') }}</p> <button @click="update">更新资料</button> </template>

refvsreactive怎么选?

  • 基本类型(number / string / boolean)→ 用ref
  • 一组相关字段的对象 → 可用reactive,也可用ref({})
  • 不确定时,优先用ref,写法更统一,也方便整体替换:user.value = { ... }

运行截图:


5.computed—— 计算属性

根据已有响应式数据「计算」出新值,有缓存:依赖不变时不会重复计算。

<script setup> import { ref, computed } from 'vue' const price = ref(100) const count = ref(2) // 总价 = 单价 × 数量 const total = computed(() => price.value * count.value) </script> <template> <p>单价:{{ price }}</p> <p>数量:{{ count }}</p> <p>总价:{{ total }}</p> <button @click="count++">数量 +1</button> </template>

注意:计算属性默认是只读的,一般不要在里面改数据,只负责「算」。

运行截图:


6.watch—— 侦听变化

数据变化时执行副作用(发请求、写本地存储、打印日志等)。

<script setup> import { ref, watch } from 'vue' const keyword = ref('') // 监听单个 ref watch(keyword, (newVal, oldVal) => { console.log('关键词从', oldVal, '变成', newVal) // 这里可以发搜索请求 }) </script> <template> <input v-model="keyword" placeholder="输入搜索词" /> </template>

运行截图:

常用选项:

watch(keyword,(newVal)=>{// ...},{immediate:true,// 一上来就先执行一次deep:true// 深度监听对象内部变化(监听 reactive / 对象时常用)})

watchEffect则更省事:自动收集回调里用到的依赖,一有变化就执行:

import{ref,watchEffect}from'vue'constcount=ref(0)watchEffect(()=>{console.log('count 当前是',count.value)})

http://www.jsqmd.com/news/1328093/

相关文章:

  • 新手零门槛搭建桌面 AI 助手 OpenClaw 可视化部署教程(含安装包)
  • 如何免费高效批量下载抖音无水印视频和音频?douyin-downloader完整解决方案
  • 2026运城商铺防水补漏三品牌公开参数与场景对照:工艺/材料/报价/质保(捷修/宅乐安/居固安) - 家居避坑指南
  • 2026佛山靠谱装修公司推荐:8家口碑装修品牌综合测评 - 资讯在线
  • 实测5家杭州GEO服务公司哪家好_谁更适合你的企业一文看懂 - 资讯在线
  • 2026年博超苗床领衔 轨道苗床挑选攻略及优质企业盘点 - 董不懂啊
  • 开题报告不用愁:毕夏AI帮你搭好“学术脚手架”
  • 为什么你的AI助手总被用户跳过?揭秘微交互注意力衰减曲线与3秒首触留存公式
  • 新手建站避坑:国内主流自助建站平台详细对比,按需快速选型 - 小富子呀
  • 合肥直播代运营|抖音直播代运营公司推荐:安徽三文鱼网络科技地址电话与营业时间核对|2026年8月4日资料更新 - geo88
  • 2026拉萨搬家服务公司哪家好?本地人亲测:长短途搬家避坑指南与靠谱商家参考 - geo88
  • qwen-vl-max 模型压测
  • 办公自动化新思路:OpenClaw v2.9.0 一键包部署与功能实测(含安装包)
  • Unity DOTS 2.0性能优化:规避五大架构反模式,释放Burst与Job System潜力
  • 2026北京迪奥回收|轻奢高阶品类行情解析与闲置资产高效变现指南 - 全国二奢机构参考
  • 北京西城区 GIA 钻戒变现核对证书实物,综合货品情况给到实在报价 - 生活时报
  • Unity编辑器视口预览工具开发:从原理到高效工作流实战
  • Android Navigation组件参数传递实践与优化
  • 装修异味和甲醛如何处理?江苏康一环保科技有限公司空气治理服务 - 康一科技
  • 紧急预警:OpenAI、Meta最新模型已触发差分隐私失效阈值!3小时内必须完成的4项动态ε重校准操作
  • 2026 年 8 月最新|南京办公室设计工装装修实地走访测评,南京同城厂房改造消防施工怎么选 - 超人防水
  • 瑞幸在泰国一审败诉:你在国内的商标权,出了国还剩多少?
  • 西藏同城搬家公司推荐找哪家?2026年西藏耀昌实业搬家服务网点核对|电话13889007518|地址与营业时间确认 - geo88
  • 如何安全合规地开发微信数据处理工具:一个被下架项目的教训与启示
  • AI口碑:先让AI说对你,再让客户找到你 - 产品评测官
  • 2026深圳淘宝代运营公司推荐,天猫代运营公司推荐避坑指南:5个挑选要点,帮你绕开90%的坑 - geo88
  • 2026家政小程序哪家好选型对比靖澜科技、乔拓云、凡科差异详解 - 靖澜科技
  • MATLAB分布式优化:ADMM算法与YALMIP/GUROBI实践
  • 跨平台输入法词库转换终极指南:imewlconverter如何打破数据壁垒实现20+格式互通
  • 小白必看!衡识人才测评风险筛查操作手册,独立完成季度员工摸排项目 - 衡识人才测评