首页 > 其他分享 >Vue3——setup语法糖

Vue3——setup语法糖

时间:2024-06-11 23:33:23浏览次数:38  
标签:alertInformation function 显示信息 setup Vue3 语法 10px

setup概述

setupVue3中新的配置项,值是一个函数,组件中所用到的数据、方法、计算属性、监视等等,均配置在setup中。

  • setup函数返回的对象中的内容,可直接在模版中使用。
  • setup中不能使用this关键字,thisundefined
  • setup会在beforeCreate()函数之前调用,领先所有的钩子函数执行的。

写法一(用于理解,不推荐这种写法)

代码

<template>
  <div>
    <h2> 数字:{{ n }} </h2>
    <button @click="alertInformation">显示信息</button>
  </div>
</template>

<script lang='ts'>
export default {
  name: "App",
  setup() {
    //定义变量和方法
    let n: number = 10;
    function alertInformation() {
      alert("Hello World!");
    }
    //需要返回,才能在模板中使用
    return { n, alertInformation }
  }
}
</script>

<style scoped>
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

button {
  margin: 0 5px;
}
</style>

运行结果

注意:此时定义的变量n不是响应式的,更改n不会在页面渲染。

数字没有重新渲染到页面

代码

<template>
  <div>
    <h2> 数字:{{ n }} </h2>
    <button @click="alertInformation">显示信息</button>
    <button @click="changeN">n加1</button>
  </div>
  <div>

  </div>
</template>

<script lang='ts'>
export default {
  name: "App",
  setup() {
    //定义变量和方法
    let n: number = 10;
    function alertInformation() {
      alert("Hello World!");
    }

    //测试
    function changeN() {
      n++;
      console.log("数字n", n)
    }
    //需要返回,才能在模板中使用
    return { n, alertInformation, changeN }
  }
}
</script>

<style scoped>
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

button {
  margin: 0 5px;
}
</style>

运行结果

写法二(推荐写法)

使用setup语法糖

在script标签上添加setup

插件名:Vue-Official

代码

<template>
  <div>
    <h2> {{ n }} </h2>
    <button @click="alertInformation">显示信息</button>
  </div>
</template>

<!--Vue 3 setup语法糖 -->
<script setup lang='ts' name="App">
let n = 10;

function alertInformation() {
  alert("Hello world!");
}
</script>

<style scoped>
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

button {
  margin: 0 5px;
}
</style>

注意:此时变量n也不是响应式。
需要了解响应式,查看官方文档

或者文章Vue3-ref和reactive

标签:alertInformation,function,显示信息,setup,Vue3,语法,10px
From: https://www.cnblogs.com/me-me/p/18242905

相关文章

  • 基于jeecgboot-vue3的Flowable流程--抄送我的功能
    因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。1、抄送我的界面代码如下:<template><divclass="p-2"><!--查询区域--><divclass="jeecg-basic-table-form-container"><a-formref="formRef"@keyup.enter.nati......
  • electron + vue3 自定义窗口:移动,缩放,置顶
    electronmain.jsconst{BrowserWindow,ipcMain}=require('electron');constpath=require("path")constCustomWindow=require('./CustomWindow')constwin=newBrowserWindow({frame:false,transparent:true,......
  • 实现抖音视频滑动功能vue3+swiper
    首先,你需要安装和引入Swiper库。可以使用npm或者yarn进行安装。pnpminstallswiper然后在Vue组件中引入Swiper库和样式。//导入Swiper组件和SwiperSlide组件,用于创建轮播图import{Swiper,SwiperSlide}from'swiper/vue';//导入Swiper的CSS样式,确保轮播图......
  • vue3 高德安徽省边界 密钥必须添加否则会出现无法使用DistrictSearch的方法也不报错
    <template> <divclass="centermap"ref="mapContainer"></div></template><scriptsetuplang="ts">import{ref,onMounted}from'vue';importAMapLoaderfrom'@amap/amap-jsapi-l......
  • 管理数据必备;侦听器watch用法详解,vue2与vue3中watch的变化与差异
    目录一、侦听器(watch)是什么?二、Vue2中的watch(OptionsAPI)2.1、函数式写法2.2、对象式写法    ①对象式基础写法    ②回调函数handler    ③deep属性        ④immediate属性三、Vue3中的watch3.1、向下兼容(Vue2)的Options API3.2......
  • JavaScript基础语法
    原文链接:https://blog.csdn.net/m0_67683346/article/details/1275910796.2、console.log在控制台打印一个日志(一般是给程序员看的):console.log("helloJavaScript");需要在开发者工具中的控制台查看打印结果:  ★console是JS中的一个“对象”,.表示取对象中的某个属性或......
  • Vue3 运行可以,build 打包发布报错
    Vue多环境配置https://www.cnblogs.com/vipsoft/p/16696640.htmlconfig.jsconstconfig={title:'管理系统(开发)',//开发、测试apiUrl:'http://www.vipsoft.com.cn',version:'v1.0.1'}exportdefaultconfigmain.jsimportconfigfrom......
  • Vue3——创建Vue3工程
    基于Vue-Cli创建现在官方推荐使用create-vue来创建基于Vite的新项目(⚠️VueCLI现已处于维护模式!)#查看@vue/cli版本号,确保@vue/cli版本在4.5.0以上vue--version#没有安装@vue/cil或者版本不在4.5.0以上执行命令#安装或升级@vue/cli(确保安装了node.js)......
  • vue3 通过ref获取元素离顶部的距离
    vue3版本 ^3.2.45[ref].value.$el.getBoundingClientRect().top通过ref获取元素。使用 getBoundingClientRect().top 获取离顶部的距离  Vue无法读取HTMLCollection列表的length问题解决方案实践项目时候发现一个问题在mounted阶段,获取Element对象,console.l......
  • markdown的语法使用
    markdown语法1换行:两个空格之后再按word类似的换行,连续两个enter即为换段。1234123asadwqae2斜体与加粗加粗功能加粗效果两种实现方法斜体功能斜体功能斜体加粗斜体加粗一个表示斜体,两个表示加粗,三个表示两者都有3横杠删除斜体两者复合4分割线上段下......