Vue3快速入門/Vue3基礎速通

Vue3

漸進式的javascript框架,我們可以逐步引入vue的功能

官方文檔
Vue.js中文手冊
你可以借助 script 標簽直接通過 CDN 來使用 Vue:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

通過 CDN 使用 Vue 時,不涉及“構建步驟”。這使得設置更加簡單,并且可以用于增強靜態的 HTML 或與后端框架集成。但是,你將無法使用單文件組件 (SFC) 語法。

簡單的web頁面不需要使用復雜的vue框架構建即可呈現出精美的效果,因此我們先使用cdn的方式來學習vue,以后逐步過渡到完整框架。

vue一般有兩種開發方式,一種是組件式,一種是組合式。vue3官方文檔主推組合式的編寫,因此我們也使用組合式開發

組合式學習

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="vue.global.js"></script>
</head>
<body><div id="app"><h1>{{ message }}</h1><p>{{ web.title }} {{ web.url }}</p></div><script>Vue.createApp({// setup選項,用于設置響應式數據和方法等setup(){const message = Vue.ref('Hello Vue!')// 這是個對象,可以直接在模板中使用const web = Vue.reactive({title: 'Vue.js',url: 'https://cn.vuejs.org/'    })return {message: message,// web: webweb}}}).mount('#app')</script></body>
</html>

在開發時我們也可以使用模塊化開發的方式大家看上面的代碼示例,每一個vue方法前都有一個Vue.,比如Vue.createApp,然而我們可以直接

import { createApp , reactive} from './vue.esm-browser.js'

即可不加Vue.來直接編寫vue代碼,也不用導入

  <script src="vue.global.js"></script>

因此兩種方式視自己喜好選擇即可。

接下來我們將逐步認識各個方法

ref 與 reactive

在這里插入圖片描述

ref是一個引用,修改使用.value, 而reactive則直接修改對應屬性即可

ref也可以存儲數組

綁定事件 v-on 簡寫 @

在這里插入圖片描述

顯示和隱藏 v-show

<p v-show="show">...</p>
當show為false就隱藏

條件渲染 v-if

<p v-if="show"> ... </p>
不適用于頻繁切換顯示狀態以下是更好的用法
<p v-if="show < 1000">用戶較少</p>
<p v-else-if="show > 1000 && show < 10000 ">用戶較多</p>
<p v-else>用戶很多</p>

動態屬性綁定v-bind

<input type="text" :value="web.url">
這樣文本框的值就是web.url的值
簡寫直接用:
這個綁定可以用在class, img, src等用法,實現其值的動態綁定

放在li中為每行元素設置title和key

:title=“value.name”

:key=“value.id”

v-for 遍歷數組和對象

<p>遍歷數組或對象</p>
<ul><li v-for="value in arr">{{ value }}</li>
</ul>
const arr = Vue.reactive([1,2,3,4,5])

雙向數據綁定 v-model

單向數據綁定:當數據發生改變時,視圖會自動更新,但是用戶手動修改input的值,數據不會自動更新

雙向數據綁定會自動更新數據的值

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="vue.global.js"></script>
</head><body><div id="app"><h3>文本框 {{ data.text }}</h3><h3>單選框 {{ data.radio }}</h3><h3>多選框 {{ data.checkbox }}</h3><h3>下拉框 {{ data.select }}</h3><h3>記住密碼 {{ data.remember }}</h3>雙向數據綁定 <input type="text" v-model="data.text"><br><input type="radio" value="male" v-model="data.radio"><input type="radio" value="female" v-model="data.radio"><br><input type="checkbox" value="apple" v-model="data.checkbox"> 蘋果<input type="checkbox" value="banana" v-model="data.checkbox"> 香蕉<input type="checkbox" value="orange" v-model="data.checkbox"> 橘子<br><select v-model="data.select"><option value="">請選擇</option><option value="apple">蘋果</option><option value="banana">香蕉</option><option value="orange">橘子</option></select><br><input type="checkbox" v-model="data.remember"> 記住密碼</div><script>Vue.createApp({// setup選項,用于設置響應式數據和方法等setup() {const data = Vue.reactive({text: 'hello',radio: '',checkbox: [],select: '',remember: false})return {data}}}).mount('#app')</script></body></html>

v-model修飾符

之前的雙向數據綁定是實時渲染的(默認形式),現在我們不需要實時渲染,只要按enter等才改

  • 在失去焦點或enter后修改 v-model.lazy
  • 輸入框的值轉為數字類型 v-model.number
  • 去除首尾空格 v-model.trim

以上是常用的三種

渲染數據 v-text 和 v-html

v-html可以將數據解析為html格式,而v-text會解析為純文本格式

計算屬性computed

在這里插入圖片描述
可以避免重復計算

偵聽器watch

監聽元素的變化

setup(){const date = reactive({year:2023,month:10})watch(date.year, (newValue, oldValue))=>{console.log("new:", newValue, "old:", oldValue);}
}
// 注意,json中對象和數組是通過引用傳遞的,所以old也是修改后的值,如果是普通變量,則會通過賦值傳遞,會保留old值

自動監聽watchEffect
在這里插入圖片描述
將不需要手動設定監聽的對象

接下來我們做一個圖片輪播案例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="vue.global.js"></script>
</head><body><div id="app"><h1>{{number}}</h1><h1>imageSrc: {{imageSrc}}</h1><img :src="imageSrc" style="width: 300px;"> <br><button @click="next">+</button><button @click="prev">-</button><ul><li v-for="value in 6"><button  @click="jump(value)">{{value}}</a></li></ul></div><script>Vue.createApp({// setup選項,用于設置響應式數據和方法等setup() {const number = Vue.ref(1)// 這是個對象,可以直接在模板中使用const next = () => {number.value++if (number.value == 6) {number.value = 1}}const prev = () => {number.value--if (number.value == 1) {number.value = 6}}const web = Vue.reactive({title: 'Vue.js',url: 'https://cn.vuejs.org/'})const imageSrc = Vue.computed(() => {return `image/${number.value}.jpg`})const jump = (value) => {number.value = value}return {number,next,// web: webimageSrc,prev,jump,web}}}).mount('#app')</script></script>
</body></html>

end

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

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

相關文章

[人機交互]理解界面對用戶的影響

零.重點 – 什么是情感因素 – 富有表現力的界面 – 用戶的挫敗感 – 擬人化在交互設計中的應用 – 虛擬人物&#xff1a;代理 一.什么是情感方面 情感是指某事物對心理造成的一種狀態 二.計算機科學中存在的兩個相關的研究領域 2.1情感計算 機器如何能感知其他代理的情感&…

Ubuntu22.04及以上版本buildroot SIGSTKSZ 報錯問題

本文提供一種解決 Buildroot SIGSTKSZ 報錯途徑 解決途徑來源參考&#xff1a;Buildroot error when building with Ubuntu 21.10 其出現原因在于 GNU C Library 2.34 release announcement&#xff1a; Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOU…

Spark處理過程-案例數據清洗

&#xff08;一&#xff09;需求說明 準備十條符合包含用戶信息的文本文件&#xff0c;每行格式為 姓名,年齡,性別&#xff0c;需要清洗掉年齡為空或者非數字的行。 例如&#xff1a; 張三,25,男 李四,,女 王五,30,男 趙六,a,女 孫七,35,男 周八,40,女 吳九,abc,男 鄭十,45,女…

多模態大語言模型arxiv論文略讀(六十五)

VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ?? 論文標題&#xff1a;VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ?? 論文作者&#xff1a;Zhen Chen, Xingjian Luo, Jinlin Wu, Danny T. M. Chan, Zhen Lei, Jinqi…

五子棋html

<!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8" /> <meta name"viewport" content"widthdevice-width, initial-scale1" /> <title>五子棋游戲</title> <style>bo…

算法訓練營第十一天|150. 逆波蘭表達式求值、239. 滑動窗口最大值、347.前 K 個高頻元素

150. 逆波蘭表達式求值 題目 思路與解法 第一思路&#xff1a; 比較簡單 class Solution:def evalRPN(self, tokens: List[str]) -> int:stack []for item in tokens:if item ! and item ! - and item ! * and item ! / :stack.append(item)else:b int(stack.pop())a …

原生 IP(Native IP)

目錄 一、核心特點 二、原生 IP 的常見應用 三、原生 IP vs. 數據中心 IP 四、如何獲取原生 IP&#xff1f; 五、原生 IP 的優缺點 六、實際案例 原生 IP&#xff08;Native IP&#xff09; 是指由互聯網服務提供商&#xff08;ISP&#xff09;直接分配給用戶的 IP 地址&…

k8s的pod掛載共享內存

k8s的pod掛載共享內存&#xff0c;限制不生效問題&#xff1a; 注&#xff1a;/dev/shm 是 Linux 系統中用于共享內存的特殊路徑。通過將 emptyDir 的 medium 設置為 Memory&#xff0c;可以確保 /dev/shm 正確地掛載到一個基于內存的文件系統&#xff0c;從而實現高效的共享內…

DOCX轉PDF怎么操作最簡單?快速將DOCX轉換為專業PDF文檔

在日常辦公或學習中&#xff0c;我們經常需要將 Word 文檔&#xff08;.docx格式&#xff09;轉換為 PDF 文件。這不僅有助于保持文檔格式的一致性&#xff0c;還能確保接收者無需特定軟件即可查看文件內容。本文將詳細介紹幾種常見的方法來實現從 DOCX 到 PDF 的轉換&#xff…

VUE+ElementUI 使用el-input類型type=“number” 時,取消右邊的上下箭頭

項目場景&#xff1a; 提示&#xff1a;這里簡述項目相關背景&#xff1a; 在項目中有時候需要輸入框的type“number”&#xff0c;這個時候&#xff0c;輸入框的右邊就會出現兩個按鈕&#xff0c;這兩個按鈕可以遞增/遞減&#xff0c;但是這樣輸入框看上去就不太美觀&#x…

深入淺出理解常見的分布式ID解決方案

目錄 UUID 自增ID 數據庫多主模式 號段模式 Redis 雪花算法 百度 UIDgenerator 美團Leaf 滴滴TinyID 實戰中的分布式ID生成器&#xff01;保障數據唯一性的核心組件 怎么編寫Lua腳本是關鍵 怎么執行&#xff1f; 總結 分布式ID在構建大規模分布式系統時扮演著至關…

技術視界 | 青龍機器人訓練地形詳解(一):如何創建一個地形

機器人強化學習中的地形訓練是利用強化學習算法讓機器人在不同地形環境中通過試錯學習最優行為策略的過程&#xff0c;通過環境建模、策略學習與優化等環節&#xff0c;使機器人能夠自主適應復雜多變的地形&#xff0c;提高其移動效率、穩定性和自主性&#xff0c;減少人為干預…

【SGL】Scatter-Gather List內存傳輸技術

文章目錄 1. What is SGL&#xff1f;2. sgl內存傳輸的原理2.1 核心思想2.2 sgl數據結構2.3 摘鏈和掛鏈 3. 零拷貝技術3.1 問題背景3.2 零拷貝的核心思想及實現方式 4. sgl在存儲行業的應用 1. What is SGL&#xff1f; sgl&#xff08;Scatter-Gather List&#xff09;內存傳…

10.idea中創建springboot項目_jdk17

10.idea中創建springboot項目_jdk17 一、前期準備 安裝與配置&#xff1a; 確保已安裝 IntelliJ IDEA配置好 JDK17 二、創建 Maven 項目 新建項目&#xff1a; 點擊 File → New → Project&#xff0c;選擇左側的 Maven。填寫項目名稱&#xff08;如 demo&#xff09;、存…

如何使用極狐GitLab 軟件包倉庫功能托管 ruby?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 軟件包庫中的 Ruby gems (BASIC ALL) WARNING:Ruby gems 軟件包庫正在開發中&#xff0c;由于功能有限&#xff0c;尚未準備好…

LeetCode 熱題 100 131. 分割回文串

LeetCode 熱題 100 | 131. 分割回文串 大家好&#xff0c;今天我們來解決一道經典的回溯算法問題——分割回文串。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求將一個字符串 s 分割成若干個子串&#xff0c;使得每個子串都是回文串&#xff0c;并返回所有可能的分割…

〖 Linux 〗操作系統進程管理精講(2)

文章目錄 1、環境變量基本概念常見環境變量查看環境變量方法測試 PATH測試 HOME和環境變量相關的命令環境變量的組織方式<p align"center">main 函數的三個參數通過代碼獲得環境變量通過系統調用獲取環境變量環境變量通常是具有全局屬性的 2、程序地址空間2.1 …

vite:npm 安裝 pdfjs-dist , PDF.js View 示例

pdfjs-dist 是 Mozilla 的 PDF.js 庫的預構建版本&#xff0c;能讓你在項目里展示 PDF 文件。下面為你介紹如何用 npm 安裝 pdfjs-dist 并應用 pdf.js 和 pdf.worker.js。 為了方便&#xff0c;我將使用 vite 搭建一個原生 js 項目。 1.創建項目 npm create vitelatest pdf-v…

精品,架構師總結,MySQL 5.7 查詢入門詳解

文章目錄 MySQL 5.7 查詢入門詳解一、數據庫與表基礎操作1.1 連接數據庫1.2 創建數據庫1.3 使用數據庫1.4 創建數據表1.5 表結構查看 二、SELECT基礎查詢2.1 全列查詢2.2 指定列查詢2.3 別名使用2.4 去重查詢2.5 表達式計算 三、WHERE條件查詢3.1 比較運算符3.2 邏輯運算符3.3 …

P48-56 應用游戲標簽

這一段課主要是把每種道具的游戲Tag進行了整理與應用 AuraAbilitySystemComponentBase.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AbilitySystemComponent.h"…