Vue3-Setup-“集大成者”

何为Setup:

        setupVue3中一个新的配置项,值是一个函数,它是 Composition API 行为的根基,组件中所用到的:数据、方法、计算属性、钩子、自定义方法、自定义插槽、自定义Ref、监视......等等,均配置在setup中。

        格式如下:(直观来看,仍然不像是组件式的,反倒像选项式的)

<script lang="ts">export default {name:'Person',setup(){// 数据,原来写在data中(注意:此时的name、age、tel数据都不是响应式数据)let name = '张三'let age = 18let tel = '13888888888'// 方法,原来写在methods中function changeName(){name = 'zhang-san' //注意:此时这么修改name页面是不变化的console.log(name)}function changeAge(){age += 1 //注意:此时这么修改age页面是不变化的console.log(age)}function showTel(){alert(tel)}// 返回一个对象,对象中的内容,模板中可以直接使用return {name,age,tel,changeName,changeAge,showTel}}}
</script>

Setup的特点:

  1. setup函数返回的对象中的内容,可直接在模板中使用。

  2. setup中访问thisundefined

  3. setup函数会在beforeCreate之前调用,它是“领先”所有钩子执行的。

  4. setup含有顶层async,script中异步调用获得数据时可以只写await

setup 的返回值:

        

  • 若返回一个对象:则对象中的:属性、方法等,在模板中均可以直接使用

  • 若返回一个函数:则可以自定义渲染内容,代码如下:

setup(){return ()=> '你好哇!'
}

setup 与 Options API 的关系:

  • Vue2 的配置(datamethos......)中可以访问到 setup中的属性、方法。

  • 但在setup不能访问到Vue2的配置(datamethos......)。

  • 如果与Vue2冲突,则setup优先。

setup 语法糖:

直接将setup写在script标签中

<script setup lang="ts">console.log(this) //undefined// 数据(注意:此时的name、age、tel都不是响应式数据)let name = '张三'let age = 18let tel = '13888888888'// 方法function changName(){name = '李四'//注意:此时这么修改name页面是不变化的}function changAge(){console.log(age)age += 1 //注意:此时这么修改age页面是不变化的}function showTel(){alert(tel)}
</script>

上述代码,还需要编写一个不写setupscript标签,去指定组件名字,比较麻烦,我们可以借助vite中的插件简化

第一步:包管理器下载插件:npm i vite-plugin-vue-setup-extend -D

第二步:vite.config.ts配置下述代码:

import { defineConfig } from 'vite'
import VueSetupExtend from 'vite-plugin-vue-setup-extend'
​
export default defineConfig({plugins: [ VueSetupExtend() ]
})

第三步:使用<script setup lang="ts" name="Person">

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

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

相关文章

Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0

据悉&#xff0c;Nginx 1.25.0-1.26.0 主线版本中涉及四个与 NGINX HTTP/3 QUIC 模块相关的中级数据面 CVE 漏洞&#xff0c;其中三个为 DoS 攻击类型风险&#xff0c;一个为随机信息泄漏风险&#xff0c;影响皆为允许未经身份认证的用户通过构造请求实施攻击。目前已经紧急发布…

qt中的网络请求QNetworkAccessManager——两种方法同步与异步

目录 一、qt中的网络请求 1.网络的一些基础知识 网络的GET和POST方式 网络中的鉴权 2.qt实现网络请求方式get和post GET 请求 3.qt网络请求中添加鉴权信息 1. 生成鉴权字符串 2. 设置鉴权头部到 QNetworkRequest 3. 简单的网络处理响应和错误 二、同步阻塞网络请求 三…

密码与网络安全(一):专栏导读

1.专栏目的 这个专栏的核心目的是提升博主自己的密码与网络安全知识&#xff0c;其次也想将相关的学习收获分享给感兴趣的小伙伴。博主自己的工作主要量子技术相关&#xff0c;身边的同事基本上也是物理专业出身&#xff0c;最近和单位密码领域同事聊天时他提到一个思路很好的启…

【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)

一、DNS&#xff08;Domain Name System&#xff09; DNS 是一整套从域名映射到 IP 的系统。 1、DNS 背景 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西&#xff0c;是一个字符串&…

当没用git工具是怎么快速下载项目

https://github.com/lucasb-eyer/pydensecrf/archive/refs/heads/master.zip 是一个用于直接下载 GitHub 仓库中最新代码的链接。让我们详细解释一下这个 URL 的结构以及它的用途&#xff1a; ### URL 结构说明 1. **基本仓库 URL**&#xff1a; https://github.com/l…

学习笔记——网络参考模型——TCP/IP模型

二、TCP/IP模型 TCP/IP模型(TCP/IP协议栈)&#xff1a;很多个互联网协议的集合&#xff0c;其中以TCP和IP为主&#xff0c;将这些协议的集合称为TCP/IP协议栈。目前使用最多的协议模型。 因为OSI协议栈比较复杂&#xff0c;且TCP和IP两大协议在业界被广泛使用&#xff0c;所以…

JavaScript 动态网页实例 —— 窗口控制

除了打开和关闭窗口之外,还有很多其他控制窗口的方法。例如,可以使用 window.focus()方法使窗口获得焦点,也可以利用与其相对的window.blur 方法使窗口失去焦点。本节介绍移动窗口、改变窗口大小、窗口滚动、窗口超时操作、常用窗口事件、常用窗口扩展等窗口控制的方法和手段。…

Docker 部署 OCRmyPDF、提取PDF内容

一、镜像导入 # 拉取镜像 docker pull jbarlow83/ocrmypdf# 导出镜像 docker save -o /data/ocrmypdf/ocrmypdf.tar jbarlow83/ocrmypdf:latest # 导入镜像 docker load -i ocrmypdf.tar二、调取镜像 # 【调用镜像】&#xff08;以下2选1&#xff09;# 1-执行后删除容器【官方…

vue3 树节点如何通过子节点的parentid找到父节点数据

在Vue 3中&#xff0c;如果你有一个树形结构的数据&#xff0c;并且想要通过子节点的parentId找到其父节点数据&#xff0c;你可以使用递归组件或者在组件的方法中实现递归逻辑来遍历树形数据。 以下是一个简单的示例&#xff0c;展示如何在Vue 3组件中实现这个功能&#xff1…

[每周一更]-(第99期):MySQL的索引为什么用B+树?

文章目录 B树与B树的基本概念B树&#xff08;Balanced Tree&#xff09;B树&#xff08;B-Plus Tree&#xff09;对比 为什么MySQL选择B树1. **磁盘I/O效率**2. **更稳定的查询性能**3. **更高的空间利用率**4. **并发控制** 其他树结构的比较参考 索引是一种 数据结构&#x…

【启明智显分享】WIFI6开发板ZX6010:开源OpenWrt SDK,接受定制!

在数字化飞速发展的当下&#xff0c;网络速度和稳定性已成为各行各业不可或缺的关键因素。今天&#xff0c;我们为大家推荐一款基于IPQ6010的AX1800方案ZX6010 Wi-Fi6开发板&#xff0c;为您的网络世界注入强大动力。 一、超强硬件配置 ZX6010搭载IPQ6010四核ARM Cortex A53处…

LeeCode热题100(两数之和)

本文纯干货&#xff0c;看不懂来打我&#xff01; 自己先去看一下第一题的题目两数之和&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 简单来说就是让你在一个数组里面找两个数&#xff0c;这两个数的和必须满足等于目标值target才行。 我认为你要是没有思路的话&a…

营造科技展厅主题氛围,多媒体应用有哪些新策略?

长久以来&#xff0c;展厅作为线下向公众传递信息的窗口&#xff0c;其设计风格与内容主题紧密相连&#xff0c;展现出千姿百态的面貌。然而&#xff0c;随着数字多媒体技术的日新月异&#xff0c;展厅不再仅仅是传统的信息展示平台&#xff0c;而是成为了引领内容展示潮流的风…

modelscope只读盘无法启动模型问题

简介 将提前下载好的modelscope模型目录&#xff0c;映射到容器中作为只读模式时会报错。 原因分析 使用modelscope加载模型时会去修改ast_index和具体模型的一些隐藏文件。 解决方案 如果你使用的框架支持直接传model的绝对路径&#xff08;例如vllm&#xff09;&#xf…

数仓建模—需求管理

文章目录 数仓建模—需求管理需求管理的背景日常需求管理项目需求管理要明确用户明确指标明确业务规则明确取数来源明确用户与指标对应关系总结数仓建模—需求管理 今天我们简单介绍一下数仓的需求管理,其实需求管理是一个软技能,为什么说是软技能,因为即使你不会需求管理或…

DW怎么Python:探索Dreamweaver与Python的交织世界

DW怎么Python&#xff1a;探索Dreamweaver与Python的交织世界 在数字世界的广袤天地中&#xff0c;Dreamweaver&#xff08;简称DW&#xff09;与Python这两大工具各自闪耀着独特的光芒。DW以其强大的网页设计和开发能力著称&#xff0c;而Python则以其简洁、易读和强大的编程…

【Git】git合并分支指定内容到主分支

git合并分支指定内容到主分支 在现实开发中&#xff0c;往往需要合并分支内容&#xff0c;如下图&#xff1a; 我们平时在其他分支修改了部分代码&#xff0c;如何将分支部分代码合并到主分支上面呢&#xff1f; 合并步骤&#xff1a; 1、切换当前到主分支 git checkout m…

大型制造业集团IT信息化总体规划方案(65页PPT)

方案介绍&#xff1a; 本大型制造业集团IT信息化总体规划方案旨在通过构建先进、高效、稳定的IT信息化系统&#xff0c;支撑集团各业务领域的运营和管理需求&#xff0c;促进集团整体运营效率和竞争力的提升。通过实施本项目&#xff0c;集团将能够更好地应对市场变化和客户需…

初级前端开发岗

定位&#xff1a; 日常任务的辅助执行者&#xff0c;前端基础建设的参与者。 素质要求&#xff1a; 是否遵循部门敏捷流程、规范、P0制度&#xff1b;具备良好的沟通和协作能力;负责日常迭代任务的落地执行;拥有较强的执行力&#xff0c;能够灵活解决问题; 职责&#xff1a…

【Linux-Yocto】

Linux-Yocto ■ 1.1 安装 Git 与配置 Git 用户信息■ 1.2 获取 Yocto 项目■ 1.3 开始构建 Yocto 文件系统■ 1.4 构建 SDK 工具■■■ ■ 1.1 安装 Git 与配置 Git 用户信息 sudo apt-get install git git config --global user.name "username" // 配置 Git 用户名…