最新版vue3+TypeScript开发入门到实战教程之学会vue3第一步必是setup语法糖
setup 概述在vue3中若没有学好setup函数后面学习vue3将会越学越乱。setup是一个函数它在vue3是一个新的配置项是组合式语法 (Composition API)表演的舞台组件中所用的属性、计算属性、方法、监视等等均需要在setup中配置。setup特性setup函数中没有this它是undefinedsetup函数返回的对象内容可直接在模版中调用setup函数在beforeCreate之前调用领先所有生命周期钩子。最简单setup事例语法上节 vue3与vue2语法优劣对比中vue2语法是选项式OptionsAPI如下图既然vue3是组合式语法 (Composition API)它就不应该有datamethods而是所有内容都合并在一起删除data与methos建立setup函数定义数据与方法流程如下删除data内容删除methos内容创建setup函数在setup函数中定义变量与方法setup函数要返回数据与方法供模版使用template div classcar h2品牌:{{ name }}/h2 h2价格:{{ price }}万/h2 button clickchangeName修改品牌/button button clickchangePrice修改价格/button button clickshowLowPrice查看低价/button /div /template script langts export default{ name: Car, setup() { console.log(this) let name 奔驰; let price 100; let lowPrice 80; function changeName() { name 宝马 console.log(name) } function changePrice() { price 10; console.log(price) } function showLowPrice() { alert(lowPrice); } return { name, price, changeName, changePrice, showLowPrice } } } /script浏览器输入http://localhost:5173效果如下首次打开页面控制台首先输出this为undefinedsetup没有this页面能够渲染品牌与价格点击修改品牌name值能够修改但页面没有变化点击修改价格price值能够修改但页面没有变化点击查看低价控制台正确输出在vue2中data定义的数据是响应式数据但在vue3这种方式定义的数据不是响应式。在vue3中有五中类型的响应式数据。在下期细讲明避免与setup知识点理解不清暂不提及。name、price、lowPrice都不是响应式数据。setup与data、methods常常被问到面试题在vue组件中常常有人将vue2语法与vue3语法混着写既在data定义数据又在setup定义数据。当使用函数访问数据中问题出现。setup数据能否访问data数据反之亦能否页面属性与方法非常混乱所以在vue3中不要去写vue2语法实在搞不定再去写。setup与data、methods可以共存data、methods能访问setup数据与方法setup不能访问data中的数据与方法setup与data、methods可以共存继上面的事例给car新增一个color颜色属性用vue2语法编写template div classcar h2品牌:{{ name }}/h2 h2价格:{{ price }}万/h2 h2颜色{{ color }}/h2 button clickchangeName修改品牌/button button clickchangePrice修改价格/button button clickshowLowPrice查看低价/button button clickchangeColor修改颜色/button /div /template script langts export default{ name: Car, data() { return { color:红色 } }, methods: { changeColor() { this.color蓝色 } }, setup() { let name 奔驰; let price 100; let lowPrice 80; function changeName() { name 宝马 console.log(name) } function changePrice() { price 10; console.log(price) } function showLowPrice() { console.log(lowPrice) } return { name, price, changeName, changePrice, showLowPrice } } } /script在浏览器访问发现可以共存且color是响应式数据。如图data、methods能访问setup数据与方法在data中修改color默认赋值为name‘color’修改methods函数changeColor让它访问name属性调用修改价格函数data() { return { color:namecolor } }, methods: { changeColor() { this.color 蓝色 console.log(this.name); this.changePrice(); } },在浏览器访问效果如下图属性颜色显示奔驰红色修改颜色函数控制台输出name并调用修改价格函数以下是具体代码template div classcar h2品牌:{{ name }}/h2 h2价格:{{ price }}万/h2 h2颜色{{ color }}/h2 button clickchangeName修改品牌/button button clickchangePrice修改价格/button button clickshowLowPrice查看低价/button button clickchangeColor修改颜色/button /div /template script langts export default{ name: Car, data() { return { color: this.name 红色 } }, methods: { changeColor() { this.color 蓝色 console.log(this.name); this.changePrice(); } }, setup() { let name 奔驰; let price 100; let lowPrice 80; function changeName() { name 宝马 console.log(name) } function changePrice() { price 10; console.log(price) } function showLowPrice() { console.log(lowPrice) } return { name, price, changeName, changePrice, showLowPrice } } } /scriptsetup数据与方法不能访问data数据与methods方法在setup函数中打印color属性提示异常Uncaught ReferenceError: color is not defined页面无法渲染在setup方法中访问color属性提示异常Uncaught ReferenceError: color is not defined让setup函数更优雅set函数需要返回值否则模版中无法访问setup定义的属性setup() { let name 奔驰; return { name } }如若新增一个属性weight重量就需要返回weight属性setup() { let name 奔驰; return { nameweight } }当有许多个属性时代码很繁琐且return { nameweight }是无必要的。只需要在script标签中添加setup可优雅解决创建一个最简setup函数template div classcar h2品牌:{{ name }}/h2 button clickchangeName修改品牌/button /div /template script setup langts let name 奔驰; function changeName() { name 宝马 } /script注意script有setup标识在setup里声明的属性和方法模版都可以访问。

相关新闻

基于麻雀搜索算法优化随机森林(SSA-RF)的时间序列预测 采用交叉验证抑制过拟合问题 mat...

基于麻雀搜索算法优化随机森林(SSA-RF)的时间序列预测 采用交叉验证抑制过拟合问题 mat...

基于麻雀搜索算法优化随机森林(SSA-RF)的时间序列预测 采用交叉验证抑制过拟合问题 matlab代码,时间序列预测总让人又爱又恨,特别是当传统随机森林遇到高噪声数据时,模型容易在训练集上表现完美却在测试时翻车。今天咱们来点硬核的——用麻雀…

2026/5/17 11:55:34 阅读更多 →
AI编程狂飙时代:别被Vibe Coding毁了系统,DDD+SDD才是下一代稳健开发范式

AI编程狂飙时代:别被Vibe Coding毁了系统,DDD+SDD才是下一代稳健开发范式

从Cursor到OpenCode,再到Goose 这类 Dev Agent,AI编程工具的迭代速度早已超出所有人的预期。编辑器级补全、项目级生成、任务级智能体,每一代产品都号称要“颠覆软件开发”,几乎每个开发者都有过同款幻觉:只要丢一句需求,AI就能全自动交付完整项目,人只需要坐等验收。 …

2026/7/2 20:02:58 阅读更多 →
阿里云oss挂载

阿里云oss挂载

创建 secret ## AccessKey 方式 将步骤一获取的 AccessKey 存储为 Secret&#xff0c;供 PV 使用。> **注意** > 1. 将 <yourAccessKeyID> 和 <yourAccessKeySecret> 替换为真实凭证 > 2. Secret 的 Namespace 需要和应用 Namespace 一致bash kubectl…

2026/5/17 5:38:12 阅读更多 →

最新新闻

AI Agent开发实战:从环境搭建到生产部署

AI Agent开发实战:从环境搭建到生产部署

1. AI Agent 开发概述&#xff1a;自动化执行利器的核心价值AI Agent&#xff08;人工智能代理&#xff09;正在重塑我们处理重复性工作的方式。想象一下&#xff0c;你有一个不知疲倦的数字化助手&#xff0c;能够724小时处理客户咨询、自动整理数据、甚至帮你完成复杂的业务流…

2026/7/4 2:21:32 阅读更多 →
AI Agent开发实战:从理论到部署的完整指南

AI Agent开发实战:从理论到部署的完整指南

1. AI Agent学习全景图&#xff1a;从认知到实战的完整路径AI Agent作为当前人工智能领域最具前景的技术方向之一&#xff0c;正在重塑人机交互的范式。不同于传统AI模型&#xff0c;AI Agent具备自主感知、决策和执行能力&#xff0c;能够像人类员工一样完成复杂任务。我在实际…

2026/7/4 2:19:31 阅读更多 →
DeepSeek零代码办公自动化实战指南

DeepSeek零代码办公自动化实战指南

1. 项目概述&#xff1a;DeepSeek如何赋能零代码办公自动化去年我在帮一家中小型贸易公司做流程优化时&#xff0c;发现他们80%的日常操作都在重复处理Excel表格和邮件往来。当我建议引入自动化工具时&#xff0c;财务主管的第一反应是"我们没人会编程"。这正是DeepS…

2026/7/4 2:19:31 阅读更多 →
Python数据分析实战:帕默群岛企鹅数据集探索

Python数据分析实战:帕默群岛企鹅数据集探索

1. 项目背景与数据集介绍帕默群岛企鹅数据集是生态学研究中的经典案例&#xff0c;记录了南极洲帕默群岛三个岛屿上三种企鹅&#xff08;阿德利企鹅、巴布亚企鹅和帽带企鹅&#xff09;的形态测量数据。这个数据集之所以成为数据科学入门的理想选择&#xff0c;主要因为以下几个…

2026/7/4 2:17:31 阅读更多 →
Pandas数据读取全攻略:从CSV到数据库实战技巧

Pandas数据读取全攻略:从CSV到数据库实战技巧

1. Pandas数据读取基础认知作为Python数据分析的瑞士军刀&#xff0c;Pandas的数据读取能力是其核心功能之一。我初次接触Pandas时&#xff0c;最让我惊讶的是它能够用一行代码读取各种格式的数据文件。但真正深入使用后才发现&#xff0c;这看似简单的功能背后隐藏着许多值得深…

2026/7/4 2:15:31 阅读更多 →
BGA芯片手工焊接全流程:从植球到对齐的12个关键步骤与避坑点

BGA芯片手工焊接全流程:从植球到对齐的12个关键步骤与避坑点

BGA芯片手工焊接全流程&#xff1a;从植球到对齐的12个关键步骤与避坑点在电子维修和研发领域&#xff0c;BGA封装芯片的手工焊接一直被视为一项高难度操作。这种底部布满锡球的封装形式&#xff0c;虽然带来了更高的引脚密度和更好的散热性能&#xff0c;但也让焊接过程变得&q…

2026/7/4 2:13:30 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布&#xff0c;这是一个关键的安全修复版本&#xff0c;修复了多个方面的问题&#xff0c;还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出&#xff0c;mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南&#xff1a;使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL&#xff08;Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器&#xff0c;与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻