其它篇章:
1.【Vue3】01-创建Vue3工程
2.【Vue3】02-Vue3工程目录分析
3.【Vue3】03-编写app组件——src
4.【Vue3】04-编写vue实现一个简单效果
5.【Vue3】05-Options API和Composition API的区别
6.【Vue3】06-利用setup编写vue(1)
7.【Vue3】07-利用setup编写vue(2)-setup的语法糖
合集篇:
1.【Vue3】创建并运行一个简易的Vue3项目
2.【Vue3】编写vue实现一个简单效果,并使用setup糖简化代码

【Vue3】06-利用setup编写vue(1)

    • setup
      • setup概述
        • 理解概念
          • 概念:
          • 优点:
        • 实操验证:基本用法
          • 步骤一:创建`setup`,删除`data()、methods`
          • 步骤二:添加数据
          • 步骤三:添加方法
          • 步骤四:验证
        • 完整代码:
          • App.vue:
          • Person.vue:

setup

setup概述

理解概念
概念:
  • 在Vue3中,setup函数是一个全新的选项,用于替代Vue2中的beforeCreatecreated钩子函数。
  • 它是在 组件创建 时执行的一个函数,主要用于 声明 组件的状态和行为,使得组件更加清晰和易于维护。
优点:

在vue3中,相对vue2有一个优点,它可以在直接连写几个<Person/>(引入vue组件,这里用Person举例)。
举例:代码如下。

<template><Person/><Person/><Person/><Person/><Person/>
</template>

验证:最终效果如下,可以看到有很多组件,vue2就不能这样写。
在这里插入图片描述

实操验证:基本用法

原始代码:

<template><div class="person"><h1>姓名:{{name}}</h1><h1>年龄:{{age}}</h1><button @click="show">查看生日</button></div>
</template><script lang="ts">export default{name:"person",data() {return{name:'zhangsan',age:20,birth:'2005.1.1'}            },methods:{show(){alert(this.birth)}}}
</script><style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
  • 在此基础上完成对setup的实操。
步骤一:创建setup,删除data()、methods

对script标签内容进行修改,在<script>export中添加setup(){},代码如下:

<script lang="ts">export default{name:"person",setup(){//之后在这添加内容}}
</script>
步骤二:添加数据
  1. setup()里添加数据,代替之前的data()(vue2写法)的内容,代码如下:

    <script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';}}
    </script>
    

注意:这里添加的name、age、birth的数据都不是响应式的,在后面添加函数时,修改后的数据,是不会覆盖开始就显示的数据的。

  1. 修改过后,发现前面对数据的引用飘红了:
    在这里插入图片描述
    这是因为没有加return,在setup中添加return {n:name,a:age},再将{{ }}的内容分别改为n,a就行了:
    在这里插入图片描述

  2. return中的内容,冒号左边对应引用,冒号对应setup内的定义,但我们一般把这两部分设置为一样的,比如:{name:name,age:age},这样更容易分辨。而两部分一样的话,就可以简写为这样的形式:{name,age}
    添加数据后,最终的代码如下:

    <template><div class="person"><h1>姓名:{{name}}</h1><h1>年龄:{{age}}</h1></div>
    </template><script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';return {name,age}}}
    </script>
    
步骤三:添加方法

接下来在setup里添加方法。

注意

  1. 记住要添加在return之前,不然到return就结束了,后面的方法就没用了。
  2. 不要在setup里用this,this在setup函数里是undefined。要修改变量比如name,直接name='???'就可以了。
  1. 定义一个函数,代码如下:

    function show(){//之后在这添加内容
    }
    
  2. 在函数中添加内容,完成指定功能,并将其添加到return中,代码如下:

    function show(){alert(birth)
    }
    return {name,age,show}
    
  3. <template>里的容器里添加按钮,最终完整代码如下:

<template><div class="person"><h1>姓名:{{name}}</h1><h1>年龄:{{age}}</h1><button @click="show">查看生日</button></div>
</template><script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';function show(){alert(birth)}return {name,age,show}}}
</script>
<style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
步骤四:验证

终端输入npm run dev启动服务器,浏览器访问,并点击“查看生日”,的到以下界面:
在这里插入图片描述

完整代码:
App.vue:
<template><Person/><Person/><Person/><Person/><Person/>
</template><script lang="ts">import Person from './components/Person.vue';export default{name:"app",components:{Person}}
</script>
<style>.app {background-color: aqua;box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
Person.vue:
<template><div class="person"><h1>姓名:{{name}}</h1><h1>年龄:{{age}}</h1><button @click="show">查看生日</button></div>
</template><script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';function show(){alert(birth)}return {name,age,show}}}
</script>
<style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>

vue工程的基本创建与运行方法可参考以下篇章:

其它篇章:
1.【Vue3】01-创建Vue3工程
2.【Vue3】02-Vue3工程目录分析
3.【Vue3】03-编写app组件——src
4.【Vue3】04-编写vue实现一个简单效果
5.【Vue3】05-Options API和Composition API的区别
6.【Vue3】06-利用setup编写vue(1)
7.【Vue3】07-利用setup编写vue(2)-setup的语法糖
合集篇:
1.【Vue3】创建并运行一个简易的Vue3项目
2.【Vue3】编写vue实现一个简单效果,并使用setup糖简化代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98872.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98872.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98872.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDS NRC速查

目录 NRC 一、通用NRC(0x10~0x5F) 二、数据相关NRC(0x70~0x8F) 三、会话与状态NRC 注意事项 UDS中的NRC(Negative Response Code)即否定响应码,用于在诊断通信中表示服务端无法成功执行客户端请求的原因。以下是一些常用的UDS NRC码及其含义: HEX Name Description 01 …

【AI论文】多模态大型语言模型的视觉表征对齐

摘要&#xff1a;通过视觉指令微调训练的多模态大型语言模型&#xff08;MLLMs&#xff09;在各类任务中均取得了优异表现&#xff0c;然而在以视觉为中心的任务&#xff08;如物体计数或空间推理&#xff09;中&#xff0c;其性能仍存在局限。我们将这一差距归因于当前主流的纯…

SKywalking Agent配置+Oracle监控插件安装指南

SKywalking Agent配置Oracle监控插件安装指南前言&#xff1a; SkyWalking Elasticsearch8 容器化部署指南 Skywalking版本&#xff1a;V10.2.0 Skywalking Agent版本&#xff1a;V9.4.0 Skywalking Agent下载地址&#xff1a;Downloads | Apache SkyWalking 插件下载地址&…

ES相关问题汇总

问题一&#xff1a;关于【QueryBuilder对象】和【Query String语法】查询时底层运行方式和结果的差异

5. STM32 时钟系统分配

文章目录下述将以stm32f407 为例1. 时钟系统及频率分析2. 时钟配置下述将以stm32f407 为例 1. 时钟系统及频率分析 上述STM32F4时钟系统图解析入下&#xff1a; STM32F407 系列微控制器&#xff08;基于 Cortex-M4 内核&#xff0c;带 FPU&#xff09;的工作频率配置如下&…

《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C知识分享》《Linux 入门到实践&#xff1a;零基础也能懂》《数据结构与算法》《测试开发实战指南》《算法题闯关指南》 ⭐️人生格言&a…

net::ERR_EMPTY_RESPONSE

net::ERR_EMPTY_RESPONSE表现解决表现 Java后端封装一个接口&#xff0c;透传前端参数&#xff0c;请求到其他模块服务 本地开发环境联调时是没有问题&#xff0c;测试环境上报错 1.前端报错&#xff0c;F12检查&#xff0c;network上的请求&#xff0c;返回response选项中为空…

在线多功能环境音生成器

https://oltool.cc/toolbox/huanjingyins.html 关于环境音生成器介绍&#xff1a; 1、本工具可以混合各种声音&#xff0c;比如下雨声&#xff0c;打雷声&#xff0c;海浪声&#xff0c;鸟叫以及虫鸣声等&#xff0c;生成新的环境声。 2、定时器&#xff1a;可以设置倒计时&…

本地电脑映射端口到外网访问的开启方法和注意事项,内网服务提供跨网使用简单操作实现

在计算机网络中&#xff0c;端口映射是一项重要的技术&#xff0c;它允许外网用户访问局域网内的特定设备或服务。当我们在本地电脑搭建部署项目应用后&#xff0c;就可以通过映射端口的方式&#xff0c;简单快速稳定的提供互联网访问服务。以下将详细介绍如何开启电脑映射端口…

Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用(410)

Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用&#xff08;410&#xff09;引言&#xff1a;正文&#xff1a;一、2023 年 6 月智能医疗健康档案的核心落地需求&#xff08;政策 业务双驱动&#xff09;1.1 政策倒逼的数据应用痛点&#xff…

微服务架构的基石:Nacos全方位解析与Java实战指南

引言在云原生与微服务浪潮席卷而来的今天&#xff0c;服务的治理与配置的管理变得前所未有的复杂。一个个单一的应用被拆分为数十甚至上百个微服务&#xff0c;如何让这些服务轻松地发现彼此&#xff1f;如何在不重启应用的情况下动态调整所有服务的参数&#xff1f;这些问题直…

IDA pro 生成idapro.hexlic

先安装IDA pro&#xff0c;安装好后&#xff0c;把根目录中的 ida32.dll和ida.dll赋值到python文件脚本同目录中&#xff0c;如图。 直接运行py import json import hashlib import os from datetime import datetime, timedelta import platform import winregname input(&…

【ARMv7-M】复位向量与启动过程

关于ARMv7上电复位后&#xff0c;通过复位向量初始化堆栈位置、PC指针&#xff0c;然后跳转到汇编入口&#xff0c;开始执行系统初始化等等操作&#xff0c;熟悉了解这个过程&#xff0c;对于嵌入式系统软件开发来说至关重要。不同的SOC在BootROM与Flash的地址分配上&#xff0…

【开发者导航】开源免费的金融数据量化与分析项目!

Hello大家好&#xff01;我是助你打破信息差的开发者导航。今天给大家分享的开源项目是OpenBB&#xff0c;一个面向量化与分析的开源金融数据平台&#xff01; 金融分析和量化研究需要可靠的数据来源与灵活的分析工具。OpenBB 正是为金融分析师、量化研究员以及 AI 代理开发者…

如何使用 OCR 提取扫描件 PDF 的文本(Python 实现)

从 PDF 中提取文本一直是很多人的需求。市面上的工具虽然能处理大部分数字 PDF&#xff0c;但遇到扫描件 PDF 时往往无能为力&#xff0c;想要直接复制或获取其中的文字并不容易。其实这个问题并不是没有解法 —— 本文将带你了解如何借助 Python OCR 技术&#xff0c;从扫描 …

Deepin/UOS系统中开启和配置SSH服务

文章目录一、安装SSH服务二、启动并设置开机自启三、配置SSH服务&#xff08;可选&#xff09;四、配置防火墙&#xff08;若开启&#xff09;五、测试SSH连接注意事项在Deepin系统中开启和配置SSH服务可以按照以下步骤进行&#xff1a; 一、安装SSH服务 Deepin基于Debian&am…

敏捷适合短期项目还是长期项目

在项目管理领域&#xff0c;敏捷方法因其灵活性和快速响应特性而广受欢迎。敏捷既适合短期项目&#xff0c;也能应用于长期项目&#xff0c;但两者的实施重点不同&#xff1a;短期项目侧重于快速交付和验证价值&#xff0c;长期项目则依靠迭代和持续改进确保复杂目标逐步实现。…

springboot+python+uniapp基于微信小程序的旅游服务系统景点信息展示 路线推荐 在线预约 评论互动系统

目录技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xff0…

保证消息的可靠性

图示以RabbitMQ为例&#xff0c;RabbitMQ server 包含多个vhost&#xff0c;而vhost主要是分为 exchanges 和 queues。 消息的可靠性分为以下几步&#xff1a; 生产者投递的可靠性&#xff1b; a. 消息投递到exchange时&#xff0c;成功和失败都会从回调接口中返回。 b. 消息从…

illustrator-06-猫头鹰

导入素材&#xff1a;【文件-置入】若&#xff1a;【文件-打开】的方式填色&#xff0c;描边功能会失效ctrl2锁定为背景画圆和三角形选择三角形-双击镜像工具-垂直-复制全选-窗口-路径查找器-联集两个正圆联集