【Vue3】07-利用setup編寫vue(2)-setup的語法糖

其它篇章:
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】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)
7.【Vue3】07-利用setup編寫vue(2)-setup的語法糖
合集篇:
1.【Vue3】創建并運行一個簡易的Vue3項目
2.【Vue3】編寫vue實現一個簡單效果,并使用setup糖簡化代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96388.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Firefox自定義備忘

1.設置firefox右鍵點擊標簽直接關閉&#xff0c;由于目前沒有插件能實現這個功能&#xff0c;只能手動設置了&#xff08;目前已知支持142和之前的版本&#xff09; firefox117右鍵關閉macWin 117版本應該可以了&#xff0c;大家可試下&#xff0c;配置方法參考之前的帖子&…

跨屏互聯KuapingCMS建站系統發布更新 增加數據看板

跨屏互聯KuapingCMS建站系統發布更新&#xff0c;增加了文章統計、產品統計、軟文統計、流量統計、pv統計、ip統計、os訪問者設備統計等等&#xff0c;整個體驗會更好&#xff0c;數據顯示更加直觀&#xff0c;可以清晰看到最近的網站數據&#xff0c;特別是對于老板&#xff0…

WebSocket連接狀態監控與自動重連實現

WebSocket連接狀態監控與自動重連實現 下面我將實現一個具有連接狀態監控和自動重連功能的WebSocket聊天室界面。 設計思路 創建直觀的連接狀態指示器實現自動重連機制&#xff0c;包括&#xff1a; 指數退避策略&#xff08;重連間隔逐漸增加&#xff09;最大重連次數限制手動…

【Vue2手錄05】響應式原理與雙向綁定 v-model

一、Vue2響應式原理&#xff08;底層基礎&#xff09; Vue2的“響應式”核心是數據變化自動觸發視圖更新&#xff0c;其實現依賴Object.defineProperty API&#xff0c;但受JavaScript語言機制限制&#xff0c;存在“數組/對象修改盲區”&#xff0c;這是理解后續內容的關鍵。 …

探索大語言模型(LLM):Ollama快速安裝部署及使用(含Linux環境下離線安裝)

前言 Ollama 是一個開源的本地化大模型運行平臺&#xff0c;支持用戶直接在個人計算機上部署、管理和交互大型語言模型&#xff08;LLMs&#xff09;&#xff0c;無需依賴云端服務。而且其混合推理的特性也使得CPU和GPU的算力能夠充分被使用&#xff0c;能夠在同等配置下跑更大…

滲透測試信息收集詳解

我們來詳細解析一下滲透測試中信息收集&#xff08;Information Gathering&#xff09;的完整內容、步驟及工具方法。信息收集是整個滲透測試的基石&#xff0c;其深度和廣度直接決定了后續測試的成功率&#xff0c;因此有“滲透測試成功與否&#xff0c;90%取決于信息收集”的…

Kafka面試精講 Day 16:生產者性能優化策略

【Kafka面試精講 Day 16】生產者性能優化策略 在“Kafka面試精講”系列的第16天&#xff0c;我們將聚焦于生產者性能優化策略。這是Kafka中極為關鍵的技術點&#xff0c;也是大廠面試中的高頻考點——尤其是在涉及高并發數據寫入、日志采集、實時數倉等場景時&#xff0c;面試…

深入解析AI溫度參數:控制文本生成的隨機性與創造性

引言 在人工智能飛速發展的今天&#xff0c;文本生成模型如GPT系列已經成為內容創作、代碼編寫、對話系統等領域的核心工具。然而&#xff0c;許多用戶在使用這些模型時&#xff0c;可能會發現輸出結果有時過于保守和重復&#xff0c;有時又過于天馬行空而缺乏連貫性。這背后其…

20250912在榮品RD-RK3588-MID開發板的Android13系統下在接電腦的時候禁止充電

20250912在榮品RD-RK3588-MID開發板的Android13系統下在接電腦的時候禁止充電 2025/9/12 10:21緣起&#xff1a;某人的電腦接榮品RD-RK3588-MID開發板的時候做APK開發板的時候&#xff0c;通過Android Studio連接榮品RD-RK3588-MID開發板。 經常斷聯/時斷時續。投訴了/抱怨了好…

Unity Addressable System 本地服務器功能驗證

1.從Package Manger里安裝Addressable 注意這里有Addressables和Addressables兩個包&#xff0c;前者是核心框架&#xff0c;處理跨平臺通用邏輯&#xff0c;比如用 地址&#xff08;Address&#xff09;來異步加載、卸載資源&#xff1b;自動做引用計數&#xff0c;避免資源泄…

碎片化采購是座金礦:數字化正重構電子元器件分銷的價值鏈

在電子元器件的分銷江湖里&#xff0c;長期存在著一條隱秘的“鄙視鏈”&#xff1a;訂單金額大、需求穩定的頭部客戶是眾星捧月的“香餑餑”&#xff0c;而需求碎片化、品類繁多的小微企業長尾訂單&#xff0c;則常被視作食之無味、棄之可惜的“雞肋”。行業固有認知告訴我們&a…

Typescript - 通俗易懂的 interface 接口,創建接口 / 基礎使用 / 可選屬性 / 只讀屬性 / 任意屬性(詳細教程)

前言 在面向對象語言中&#xff0c;接口是一個很重要的概念&#xff0c;它是對行為的抽象&#xff0c;而具體如何行動需要由類去實現。 TypeScript 中的接口是一個非常靈活的概念&#xff0c;除了可用于 對類的一部分行為進行抽象 以外&#xff0c;也常用于對「對象的形狀&…

【硬件-筆試面試題-92】硬件/電子工程師,筆試面試題(知識點:米勒效應,米勒平臺)

題目匯總版--鏈接&#xff1a; 【硬件-筆試面試題】硬件/電子工程師&#xff0c;筆試面試題匯總版&#xff0c;持續更新學習&#xff0c;加油&#xff01;&#xff01;&#xff01;-CSDN博客 【硬件-筆試面試題-92】硬件/電子工程師&#xff0c;筆試面試題&#xff08;知識點…

C語言深度入門系列:第十一篇 - 動態內存管理與數據結構:程序世界的高效算法大師

C語言深度入門系列&#xff1a;第十一篇 - 動態內存管理與數據結構&#xff1a;程序世界的高效算法大師 本章目標 本章將深入探討C語言中的動態內存管理和經典數據結構實現&#xff0c;這是從基礎編程邁向算法工程師的關鍵一步。您將掌握內存的精確控制、理解各種數據結構的本質…

Go 語言開發環境安裝與 GOPROXY 鏡像配置(含依賴管理與版本切換技巧)

在國內搭建 Go 開發環境的最大障礙不是“怎么裝”&#xff0c;而是“下不動”。本文是我在多臺 Windows / macOS / Linux 機器上踩坑后的整合筆記&#xff1a;用最穩妥的安裝方式 合理的鏡像配置 一套通吃的依賴/版本管理流程&#xff0c;把速度、穩定性和可維護性一次性解決…

崔傳波教授:以科技與人文之光,點亮近視患者的清晰視界?

崔傳波教授&#xff1a;以科技與人文之光&#xff0c;點亮近視患者的清晰視界?在臨沂新益民眼科醫院&#xff0c;有這樣一位眼科醫師——他不僅是近視矯正領域的專家&#xff0c;更是“金視青春之光手術”的研發倡導者。?崔傳波教授?以其深厚的學術功底、創新的技術理念和以…

如何寫過濾條件wrapper的使用

模糊查詢 &#xff1a;功能是&#xff1a;查詢 WORK_NUM 字段包含 ${workOrder.workNum} 的記錄。<if test"workOrder.workNum ! null and workOrder.workNum ! ">and b.WORK_NUM like CONCAT(%,CONCAT(#{workOrder.workNum},%)) </if>一、比較條件方法示…

【Spring Boot 報錯已解決】徹底解決 “Main method not found in class com.xxx.Application” 報錯

文章目錄引言一、問題描述1.1 報錯示例1.2 報錯分析1.3 解決思路二、解決方法2.1 方法一&#xff1a;添加標準的main方法2.2 方法二&#xff1a;檢查main方法的定義是否規范2.3 方法三&#xff1a;檢查主類的位置是否正確2.4 方法四&#xff1a;重新構建項目并清理緩存三、其他…

配置自簽證書多域名的動態網站+部署http的repo倉庫+基于nfs與yum倉庫的http部署

1.配置自簽證書多域名的動態網站1.1配置自簽證書1.1.1配置倉庫[rootapache ~]# vim /etc/yum.repos.d/epel.repo [epel] nameepel baseurlhttps://mirrors.aliyun.com/epel/9/Everything/x86_64/ gpgcheck0 1.1.2安裝easy-rsa工具(用于生成和…

【開題答辯全過程】以 12306候補購票服務系統為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…