当前位置: 首页 > news >正文

【Vue3】07-利用setup编写vue(2)-setup的语法糖

【Vue3】07-利用setup编写vue(2)-setup的语法糖

    • setup
      • setup的语法糖
        • 1. 理解概念
          • 概念
          • 分析
          • 优点
        • 2. 实操验证
          • 步骤一:环境准备
          • 步骤二:数据的写法
          • 步骤三:添加name
          • 步骤四:添加依赖(可选)
          • 步骤五:验证

setup

setup的语法糖

1. 理解概念
概念
  • Vue3 引入了新的 setup 语法糖,使得组件的编写更加简洁和高效。
  • setup 函数是 Vue3 中的一个新特性,用于替代 Vue2 中的 data、computed、watch 等选项,是一种新的组件选项。
分析
  • 以下是直接写setup函数的方法,写在export里:

    <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>
    
  • 思考:看看这里面想写的东西有哪些?

    • 数据name、age、birth
    • 方法show()
  • 思考:再看看,有哪些东西是为了格式正确而不得不写的?

    • 格式:要声明这是setup(){}
    • 返回return
  • 思考:怎样可以使代码更加简洁,更加易读?

    • 使用setup语法糖,<script setup></script>,新写个标签,分离出来,不用return。
优点
  1. 简化 代码结构
  2. 更好的 组件 封装。
  3. 引入 响应式 功能。
  4. 更好的 类型推断
  5. 性能 优化。
2. 实操验证
步骤一:环境准备

以以下代码为例,这是通过在export里写setup函数来实现功能的:

<template><div class="person"><h1>姓名:{{name}}</h1></div>
</template><script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';return {name}}}
</script>
<style>.person {background-color: rgb(255, 140, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
  • 思考:按照之前的方法,在export里写setup函数,是以这样的方法实现的。而要按照setup语法糖的方式实现,该如何操作呢?
  • 接下来看步骤二。
步骤二:数据的写法
  1. 将前面代码里的setup删掉,在script标签外再新写一个标签,如下:

    <script setup>
    //后面在这写内容
    </script>
    
  2. <script setup>里添加数据:

    <script setup>let name = 'zhangsan';
    </script>
    

    这些内容相当于之前的:

    setup(){let name = 'zhangsan'return {name}
    }
    
  3. 可以发现,不用写return了,不用添加一个功能或数据就要去return里再加了。

步骤三:添加name

前面的<script lang="ts">标签可以删掉了,在<script setup>后面加name,即:

<script setup name="person">let name = 'zhangsan'
</script>
步骤四:添加依赖(可选)
  • 思考:前面添加name的操作,浏览器里查看的组件名称是vue的文件名,如果想要name和文件名不一样,该怎么做?
  • 添加一个依赖:
    1. 在终端输入npm i vite-plugin-vue-setup-extend -D
      在这里插入图片描述

    2. vite.config.ts添加依赖,import ViteSetupExtend from 'vite-plugin-vue-devtools'(其中ViteSetupExtend可自定义),在plugins中添加ViteSetupExtend(),的内容如下:

      import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
      import vue from '@vitejs/plugin-vue'
      import vueDevTools from 'vite-plugin-vue-devtools'
      import ViteSetupExtend from 'vite-plugin-vue-devtools' //在这添加// https://vite.dev/config/
      export default defineConfig({plugins: [vue(),vueDevTools(),ViteSetupExtend(), //在这添加],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},
      })
      
    3. 添加依赖后,<script setup name="person">中name的内容,就可以在浏览器中查看组件时看到了。

步骤五:验证

终端输入npm run dev启动服务器,浏览器访问,得到以下界面:
在这里插入图片描述

其它篇章:
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)
合集篇:
1.【Vue3】创建并运行一个简易的Vue3项目


文章转载自:

http://HImAHh74.zfkxj.cn
http://IFBTdGgQ.zfkxj.cn
http://hTT622jy.zfkxj.cn
http://dkaKmNCB.zfkxj.cn
http://xycQKe8Q.zfkxj.cn
http://JLfhfxTT.zfkxj.cn
http://LBhP7LT8.zfkxj.cn
http://J5XrdP39.zfkxj.cn
http://ROUon718.zfkxj.cn
http://63XLqNk5.zfkxj.cn
http://AMHrNrxM.zfkxj.cn
http://vQ5QE8wD.zfkxj.cn
http://rtV6wqfO.zfkxj.cn
http://rHD4fhGB.zfkxj.cn
http://lYPkM4zF.zfkxj.cn
http://x6XGA26J.zfkxj.cn
http://MGqAXAXx.zfkxj.cn
http://XCCOU29s.zfkxj.cn
http://nwquypnw.zfkxj.cn
http://JkVkozDU.zfkxj.cn
http://fFKjhaHs.zfkxj.cn
http://Sitxv1Zy.zfkxj.cn
http://Llgn8N2s.zfkxj.cn
http://8O8dulao.zfkxj.cn
http://fjhcaVVF.zfkxj.cn
http://Fc13XQVk.zfkxj.cn
http://AK4lwyun.zfkxj.cn
http://rcGUasoO.zfkxj.cn
http://FJIeFClR.zfkxj.cn
http://3P54kkvS.zfkxj.cn
http://www.dtcms.com/a/380758.html

相关文章:

  • 使用 信号量(Semaphore) 来控制异步任务并发数
  • 1688 商品 API 实战指南:B2B 场景下的合规对接与批量运营方案
  • Qt Bridge for Figma
  • 解决docker配置了镜像源但还会拉取官方镜像源的问题
  • 【JavaEE】网络原理初识
  • 操作系统应用开发(七)mac苹果模拟器——东方仙盟练气期
  • PBI Plus 技术解析:全渠道协同架构下的数据协作效率提升方案​
  • 【C#】三个特殊的 Caller Info Attributes
  • LangChain4j入门学习
  • Django ORM 模型
  • 【SpringBoot】——原理篇
  • 机器人防爆的详细讲解
  • 【Vue3】06-利用setup编写vue(1)
  • 单序列双指针
  • Linux中进程和线程常用的API详解
  • 【AI论文】多模态大型语言模型的视觉表征对齐
  • php学习(第四天)
  • Vue中使用keep-alive实现页面前进刷新、后退缓存的完整方案
  • Jenkins运维之路(Jenkins流水线改造Day02-1-容器项目)
  • Netty从0到1系列之Netty逻辑架构【上】
  • com.google.common.cache实现本地缓存
  • LeetCode 面试经典 150 题之最后一个单词的长度:逆向遍历高效解法
  • 详解JWT
  • Spring Boot 分布式事务常见问题:Seata、XA 与本地消息表对比
  • 如何在Hugging Face中下载全部文件?
  • AI之VideoTool:AI-Video-Transcriber​​​​​​​的简介、安装和使用方法、案例应用之详细攻略
  • Qt6实现了一个打地鼠小游戏,支持AI自动打地鼠
  • Chapter5—抽象工厂模式
  • WebSocket连接状态监控与自动重连实现
  • 目标计数论文阅读(1)Class-Agnostic Counting