【Vue3】06-利用setup編寫vue(1)

其它篇章:
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】06-利用setup編寫vue(1)

    • setup
      • setup概述
        • 理解概念
          • 概念:
          • 優點:
        • 實操驗證:基本用法
          • 步驟一:創建`setup`,刪除`data()、methods`
          • 步驟二:添加數據
          • 步驟三:添加方法
          • 步驟四:驗證
        • 完整代碼:
          • App.vue:
          • Person.vue:

setup

setup概述

理解概念
概念:
  • 在Vue3中,setup函數是一個全新的選項,用于替代Vue2中的beforeCreatecreated鉤子函數。
  • 它是在 組件創建 時執行的一個函數,主要用于 聲明 組件的狀態和行為,使得組件更加清晰和易于維護。
優點:

在vue3中,相對vue2有一個優點,它可以在直接連寫幾個<Person/>(引入vue組件,這里用Person舉例)。
舉例:代碼如下。

<template><Person/><Person/><Person/><Person/><Person/>
</template>

驗證:最終效果如下,可以看到有很多組件,vue2就不能這樣寫。
在這里插入圖片描述

實操驗證:基本用法

原始代碼:

<template><div class="person"><h1>姓名:{{name}}</h1><h1>年齡:{{age}}</h1><button @click="show">查看生日</button></div>
</template><script lang="ts">export default{name:"person",data() {return{name:'zhangsan',age:20,birth:'2005.1.1'}            },methods:{show(){alert(this.birth)}}}
</script><style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
  • 在此基礎上完成對setup的實操。
步驟一:創建setup,刪除data()、methods

對script標簽內容進行修改,在<script>export中添加setup(){},代碼如下:

<script lang="ts">export default{name:"person",setup(){//之后在這添加內容}}
</script>
步驟二:添加數據
  1. setup()里添加數據,代替之前的data()(vue2寫法)的內容,代碼如下:

    <script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';}}
    </script>
    

注意:這里添加的name、age、birth的數據都不是響應式的,在后面添加函數時,修改后的數據,是不會覆蓋開始就顯示的數據的。

  1. 修改過后,發現前面對數據的引用飄紅了:
    在這里插入圖片描述
    這是因為沒有加return,在setup中添加return {n:name,a:age},再將{{ }}的內容分別改為n,a就行了:
    在這里插入圖片描述

  2. return中的內容,冒號左邊對應引用,冒號對應setup內的定義,但我們一般把這兩部分設置為一樣的,比如:{name:name,age:age},這樣更容易分辨。而兩部分一樣的話,就可以簡寫為這樣的形式:{name,age}
    添加數據后,最終的代碼如下:

    <template><div class="person"><h1>姓名:{{name}}</h1><h1>年齡:{{age}}</h1></div>
    </template><script lang="ts">export default{name:"person",setup(){let name = 'zhangsan';let age = 20;let birth = '2025.1.1';return {name,age}}}
    </script>
    
步驟三:添加方法

接下來在setup里添加方法。

注意

  1. 記住要添加在return之前,不然到return就結束了,后面的方法就沒用了。
  2. 不要在setup里用this,this在setup函數里是undefined。要修改變量比如name,直接name='???'就可以了。
  1. 定義一個函數,代碼如下:

    function show(){//之后在這添加內容
    }
    
  2. 在函數中添加內容,完成指定功能,并將其添加到return中,代碼如下:

    function show(){alert(birth)
    }
    return {name,age,show}
    
  3. <template>里的容器里添加按鈕,最終完整代碼如下:

<template><div class="person"><h1>姓名:{{name}}</h1><h1>年齡:{{age}}</h1><button @click="show">查看生日</button></div>
</template><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>
<style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
步驟四:驗證

終端輸入npm run dev啟動服務器,瀏覽器訪問,并點擊“查看生日”,的到以下界面:
在這里插入圖片描述

完整代碼:
App.vue:
<template><Person/><Person/><Person/><Person/><Person/>
</template><script lang="ts">import Person from './components/Person.vue';export default{name:"app",components:{Person}}
</script>
<style>.app {background-color: aqua;box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>
Person.vue:
<template><div class="person"><h1>姓名:{{name}}</h1><h1>年齡:{{age}}</h1><button @click="show">查看生日</button></div>
</template><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>
<style>.person {background-color: rgb(200, 255, 0);box-shadow: 0 0 10px;border-radius: 20px;padding: 20px;}
</style>

vue工程的基本創建與運行方法可參考以下篇章:

其它篇章:
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/diannao/98872.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98872.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98872.shtml

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

相關文章

UDS NRC速查

目錄 NRC 一、通用NRC(0x10~0x5F) 二、數據相關NRC(0x70~0x8F) 三、會話與狀態NRC 注意事項 UDS中的NRC(Negative Response Code)即否定響應碼,用于在診斷通信中表示服務端無法成功執行客戶端請求的原因。以下是一些常用的UDS NRC碼及其含義: HEX Name Description 01 …

【AI論文】多模態大型語言模型的視覺表征對齊

摘要&#xff1a;通過視覺指令微調訓練的多模態大型語言模型&#xff08;MLLMs&#xff09;在各類任務中均取得了優異表現&#xff0c;然而在以視覺為中心的任務&#xff08;如物體計數或空間推理&#xff09;中&#xff0c;其性能仍存在局限。我們將這一差距歸因于當前主流的純…

SKywalking Agent配置+Oracle監控插件安裝指南

SKywalking Agent配置Oracle監控插件安裝指南前言&#xff1a; SkyWalking Elasticsearch8 容器化部署指南 Skywalking版本&#xff1a;V10.2.0 Skywalking Agent版本&#xff1a;V9.4.0 Skywalking Agent下載地址&#xff1a;Downloads | Apache SkyWalking 插件下載地址&…

ES相關問題匯總

問題一&#xff1a;關于【QueryBuilder對象】和【Query String語法】查詢時底層運行方式和結果的差異

5. STM32 時鐘系統分配

文章目錄下述將以stm32f407 為例1. 時鐘系統及頻率分析2. 時鐘配置下述將以stm32f407 為例 1. 時鐘系統及頻率分析 上述STM32F4時鐘系統圖解析入下&#xff1a; STM32F407 系列微控制器&#xff08;基于 Cortex-M4 內核&#xff0c;帶 FPU&#xff09;的工作頻率配置如下&…

《從 0 建立測試開發認知:先搞懂 “是什么”,再學 “怎么做”》

&#x1f525;個人主頁&#xff1a;草莓熊Lotso &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C知識分享》《Linux 入門到實踐&#xff1a;零基礎也能懂》《數據結構與算法》《測試開發實戰指南》《算法題闖關指南》 ??人生格言&a…

net::ERR_EMPTY_RESPONSE

net::ERR_EMPTY_RESPONSE表現解決表現 Java后端封裝一個接口&#xff0c;透傳前端參數&#xff0c;請求到其他模塊服務 本地開發環境聯調時是沒有問題&#xff0c;測試環境上報錯 1.前端報錯&#xff0c;F12檢查&#xff0c;network上的請求&#xff0c;返回response選項中為空…

在線多功能環境音生成器

https://oltool.cc/toolbox/huanjingyins.html 關于環境音生成器介紹&#xff1a; 1、本工具可以混合各種聲音&#xff0c;比如下雨聲&#xff0c;打雷聲&#xff0c;海浪聲&#xff0c;鳥叫以及蟲鳴聲等&#xff0c;生成新的環境聲。 2、定時器&#xff1a;可以設置倒計時&…

本地電腦映射端口到外網訪問的開啟方法和注意事項,內網服務提供跨網使用簡單操作實現

在計算機網絡中&#xff0c;端口映射是一項重要的技術&#xff0c;它允許外網用戶訪問局域網內的特定設備或服務。當我們在本地電腦搭建部署項目應用后&#xff0c;就可以通過映射端口的方式&#xff0c;簡單快速穩定的提供互聯網訪問服務。以下將詳細介紹如何開啟電腦映射端口…

Java 大視界 -- Java 大數據在智能醫療健康檔案數據分析與個性化健康管理中的應用(410)

Java 大視界 -- Java 大數據在智能醫療健康檔案數據分析與個性化健康管理中的應用&#xff08;410&#xff09;引言&#xff1a;正文&#xff1a;一、2023 年 6 月智能醫療健康檔案的核心落地需求&#xff08;政策 業務雙驅動&#xff09;1.1 政策倒逼的數據應用痛點&#xff…

微服務架構的基石:Nacos全方位解析與Java實戰指南

引言在云原生與微服務浪潮席卷而來的今天&#xff0c;服務的治理與配置的管理變得前所未有的復雜。一個個單一的應用被拆分為數十甚至上百個微服務&#xff0c;如何讓這些服務輕松地發現彼此&#xff1f;如何在不重啟應用的情況下動態調整所有服務的參數&#xff1f;這些問題直…

IDA pro 生成idapro.hexlic

先安裝IDA pro&#xff0c;安裝好后&#xff0c;把根目錄中的 ida32.dll和ida.dll賦值到python文件腳本同目錄中&#xff0c;如圖。 直接運行py import json import hashlib import os from datetime import datetime, timedelta import platform import winregname input(&…

【ARMv7-M】復位向量與啟動過程

關于ARMv7上電復位后&#xff0c;通過復位向量初始化堆棧位置、PC指針&#xff0c;然后跳轉到匯編入口&#xff0c;開始執行系統初始化等等操作&#xff0c;熟悉了解這個過程&#xff0c;對于嵌入式系統軟件開發來說至關重要。不同的SOC在BootROM與Flash的地址分配上&#xff0…

【開發者導航】開源免費的金融數據量化與分析項目!

Hello大家好&#xff01;我是助你打破信息差的開發者導航。今天給大家分享的開源項目是OpenBB&#xff0c;一個面向量化與分析的開源金融數據平臺&#xff01; 金融分析和量化研究需要可靠的數據來源與靈活的分析工具。OpenBB 正是為金融分析師、量化研究員以及 AI 代理開發者…

如何使用 OCR 提取掃描件 PDF 的文本(Python 實現)

從 PDF 中提取文本一直是很多人的需求。市面上的工具雖然能處理大部分數字 PDF&#xff0c;但遇到掃描件 PDF 時往往無能為力&#xff0c;想要直接復制或獲取其中的文字并不容易。其實這個問題并不是沒有解法 —— 本文將帶你了解如何借助 Python OCR 技術&#xff0c;從掃描 …

Deepin/UOS系統中開啟和配置SSH服務

文章目錄一、安裝SSH服務二、啟動并設置開機自啟三、配置SSH服務&#xff08;可選&#xff09;四、配置防火墻&#xff08;若開啟&#xff09;五、測試SSH連接注意事項在Deepin系統中開啟和配置SSH服務可以按照以下步驟進行&#xff1a; 一、安裝SSH服務 Deepin基于Debian&am…

敏捷適合短期項目還是長期項目

在項目管理領域&#xff0c;敏捷方法因其靈活性和快速響應特性而廣受歡迎。敏捷既適合短期項目&#xff0c;也能應用于長期項目&#xff0c;但兩者的實施重點不同&#xff1a;短期項目側重于快速交付和驗證價值&#xff0c;長期項目則依靠迭代和持續改進確保復雜目標逐步實現。…

springboot+python+uniapp基于微信小程序的旅游服務系統景點信息展示 路線推薦 在線預約 評論互動系統

目錄技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xff0…

保證消息的可靠性

圖示以RabbitMQ為例&#xff0c;RabbitMQ server 包含多個vhost&#xff0c;而vhost主要是分為 exchanges 和 queues。 消息的可靠性分為以下幾步&#xff1a; 生產者投遞的可靠性&#xff1b; a. 消息投遞到exchange時&#xff0c;成功和失敗都會從回調接口中返回。 b. 消息從…

illustrator-06-貓頭鷹

導入素材&#xff1a;【文件-置入】若&#xff1a;【文件-打開】的方式填色&#xff0c;描邊功能會失效ctrl2鎖定為背景畫圓和三角形選擇三角形-雙擊鏡像工具-垂直-復制全選-窗口-路徑查找器-聯集兩個正圓聯集