VUE速通(10)Vue3核心语法(2)setup

news/2024/11/18 5:46:20/文章来源:https://www.cnblogs.com/qiu-hua/p/18199623

1 setup 概述

setupVue3中一个新的配置项,值是一个函数,它是 Composition API “表演的舞台,组件中所用到的:数据、方法、计算属性、监视......等等,均配置在setup中。

特点如下:

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

  • setup中访问thisundefined

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

Person.vue

<template><div class="person"><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="changeName">修改名字</button><button @click="changeAge">年龄+1</button><button @click="showTel">点我查看联系方式</button></div>
</template><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>

 App.vue

 

setup 的返回值

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

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

 

setup 与 Options API 的关系

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

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

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

setup 语法糖

setup函数有一个语法糖,这个语法糖,可以让我们把setup独立出去,代码如下:

<template><div class="person"><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="changName">修改名字</button><button @click="changAge">年龄+1</button><button @click="showTel">点我查看联系方式</button></div>
</template><script lang="ts">export default {name:'Person',}
</script><!-- 下面的写法是setup语法糖 -->
<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中的插件简化

  1. 第一步:npm i vite-plugin-vue-setup-extend -D

  2. 第二步:vite.config.ts

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

 

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

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

相关文章

免费提供运维项目,丰富简历和经历

致力于帮助运维初学者完成 从0到1、从1到10 的蜕变

Harbor数据迁移

Harbor安装参考 https://www.cnblogs.com/minseo/p/8905736.html Harbor数据需要从一台主机迁移至另外一台主机原主机备份数据 备份数据文件夹,该数据文件夹配置在配置文件harbor.yml把数据文件移动到目标主机 目标主机安装Harbor 安装参考上面链接 修改配置文件安装# ./insta…

pycharm终端下载包时出现usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ...报错

pycharm终端下载conda-forge时出现了  usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ...  的报错 如图: 通过  conda init  重置环境就可用了

免费运维项目

免费提供运维项目,丰富简历和经历 拒绝过家家,每个项目都是真刀真枪的干,就是新手入职前三个月的那种感觉。 资源规划:计算、存储、网络、目录、端口、冗余、高可用等,输出资源清单和拓扑图。 CI/CD:代码仓库、持续集成系统、以及相关中间件的部署。 监控:硬件监控、网络…

求行列式的两个方法:凑乘积,利用特征值

解释下什么是事件代理?应用场景?

一、是什么 事件代理,俗地来讲,就是把一个元素响应事件(click、keydown......)的函数委托到另一个元素 前面讲到,事件流的都会经过三个阶段: 捕获阶段 -> 目标阶段 -> 冒泡阶段,而事件委托就是在冒泡阶段完成 事件委托,会把一个或者一组元素的事件委托到它的父层…

Linux/Golang/glibC系统调用

Linux/Golang/glibC系统调用 本文主要通过分析Linux环境下Golang的系统调用,以此阐明整个流程有时候涉略过多,反而遭到质疑~,写点文章证明自己实力也好Golang系统调用 找个函数来分析 https://pkg.go.dev/os/exec#Cmd.Wait 源码文件在src/os目录下的: exec.go -> exec_u…

[转帖]【全网首发】一些可以显著提高 Java 启动速度方法原创

https://heapdump.cn/article/4136322?from=pc 我们线上的业务 jar 包基本上普遍比较庞大,动不动一个 jar 包上百 M,启动时间在分钟级,拖慢了我们在故障时快速扩容的响应。于是做了一些分析,看看 Java 程序启动慢到底慢在哪里,如何去优化,目前的效果是大部分大型应用启动…

博客园美化:canvas炫酷背景

话不多说,先上效果图:yysy,这个当背景确实酷炫!!!😄 页脚HTML代码:1 <script src="https://files.cnblogs.com/files/zhonglinke/vendors.js"></script>2 <script type="text/javascript" language="javascript">3 4…

APC挂靠

5.APC挂靠 用户态apc 和上一课的内核apc几乎一致,唯一的变动就是这个 //插入当前线程KeInitializeApc(pKapc, eThread, OriginalApcEnvironment, KernelAPCRoutineFunc, NULL, 0x4011d0, UserMode, NULL);改成了UserMode函数地址改成了进程的地址0x4011d0 完整代码 Driver-mai…

Java(7)-Maven抽取公共模块构建jar包

前提假设:项目中有两个Moudle,分别是Moudle1和Moudle2,它们有些代码是相同的,比如相同的类和API,重复书写当然可以正常运行,但是我们可以用maven打包成jar包,其他Moudle直接引用即可。 步骤 1.新建一个Module-common pox.xml 中配置 Module1 和 Moudle2 同样使用的依赖:…

KPCR进程概念

1.KPCR进程概念 KPCR 介绍 KPCR 是CPU的控制结构 FS段寄存器在R0(FS=0x30)的时候指向KPCR结构 FS 段寄存器在R3(FS=0x3b)的时候指向 当前线程的TEB(线程) 线程结构是运行在CPU上面,所以线程结构是放在CPU上的 kd> dt _KPCR ntdll!_KPCR+0x000 NtTib : _NT_TIB…