Vue 基礎語法介紹

Vue.js 是一個漸進式的 JavaScript 框架,廣泛用于構建用戶界面和單頁應用(SPA)。它的核心思想是通過簡單的模板語法和響應式的數據綁定機制,使得開發者能夠更直觀地創建動態交互的網頁。本文將介紹 Vue.js 的一些基礎語法,幫助你快速入門。

1. Vue 實例

Vue 的核心是 Vue 實例。每一個 Vue 應用都是通過創建一個新的 Vue 實例來啟動的。

創建 Vue 實例

// 創建一個 Vue 實例
const app = new Vue({el: '#app', // 綁定到頁面的 DOM 元素data: {message: 'Hello, Vue!' // Vue 實例的數據}
});

在這個例子中,我們通過 new Vue() 創建了一個 Vue 實例,并且將它綁定到 HTML 中的 id="app" 元素上。在實例的 data 屬性中定義了一個變量 message,它的值為 'Hello, Vue!'

HTML 綁定

在 HTML 中,我們可以通過 {{ message }} 來插入 data 中的變量。

<div id="app"><p>{{ message }}</p> <!-- 顯示 Vue 實例中的 message -->
</div>

此時,頁面上會顯示 "Hello, Vue!",因為 message 的值被 Vue 實例綁定到了 DOM 上。

2. 數據綁定

Vue 提供了多種方式來綁定數據,包括插值綁定、屬性綁定和事件綁定。

插值綁定

通過 {{}} 來插入數據。插值表達式的結果會自動更新。

<p>{{ message }}</p>

當 Vue 實例中的 message 數據發生變化時,頁面上的內容會實時更新。

屬性綁定

使用 v-bind 指令可以綁定 HTML 屬性到 Vue 實例的數據。

<!-- 動態綁定屬性 -->
<a v-bind:href="url">點擊這里</a>

如果 url 是 Vue 實例中的一個數據屬性,那么它的值將動態更新到 href 屬性上。

類名綁定

v-bind:class 可以動態地綁定類名。

<p v-bind:class="className">這段文本的類名是動態的。</p>

如果 className 是 Vue 實例中的數據,它的值會直接決定該元素的 CSS 類名。

樣式綁定

同樣,v-bind:style 可以動態綁定內聯樣式。

<p v-bind:style="styleObject">動態樣式</p>

styleObject 是一個包含樣式屬性的對象,如:

data: {styleObject: {color: 'red',fontSize: '20px'}
}

3. 事件處理

Vue 提供了 v-on 指令來監聽 DOM 事件并調用 Vue 方法。

事件綁定

<button v-on:click="changeMessage">點擊我</button>

當用戶點擊按鈕時,會調用 Vue 實例中的 changeMessage 方法。

methods: {changeMessage() {this.message = '你點擊了按鈕!';}
}

簡化的事件綁定

可以通過 @ 來簡化 v-on 的寫法。

<button @click="changeMessage">點擊我</button>

效果與 v-on:click="changeMessage" 相同。

4. 條件渲染

Vue 提供了 v-ifv-show 來根據條件控制元素的顯示與隱藏。

v-if?指令

<p v-if="isVisible">這是一個條件渲染的段落</p>

v-if 會根據 isVisible 的值來決定是否渲染這個元素。當 isVisibletrue 時,元素會被渲染;當它為 false 時,元素會從 DOM 中移除。

v-show?指令

<p v-show="isVisible">這個段落始終存在于 DOM 中,但是根據條件顯示或隱藏</p>

v-if 不同,v-show 會始終保留元素在 DOM 中,只是通過 CSS 來控制其顯示與隱藏。

5. 列表渲染

Vue 提供了 v-for 指令來遍歷數據并生成列表。

<ul><li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>

這里,v-for="item in items" 會遍歷 items 數組中的每一項,并為每個元素生成一個 <li> 標簽。:key 是一個優化性能的關鍵,幫助 Vue 跟蹤每個列表項的身份。

6. 雙向綁定

Vue 提供了 v-model 指令來實現表單控件和數據的雙向綁定。

表單輸入綁定

<input v-model="message" placeholder="輸入一些內容">

v-model 會自動地將輸入框的值與 Vue 實例中的 message 進行雙向綁定。當用戶在輸入框中輸入內容時,message 的值會自動更新,反之,message 的值發生變化時,輸入框中的內容也會更新。

其他控件

v-model 不僅支持輸入框,還支持其他表單元素,比如單選框、復選框、文本域等。

<!-- 復選框 -->
<input type="checkbox" v-model="isChecked"> 是否選中<!-- 單選框 -->
<input type="radio" v-model="picked" value="A"> 選項 A
<input type="radio" v-model="picked" value="B"> 選項 B

7. 計算屬性

計算屬性是 Vue 實例中的一種特殊屬性,類似于方法,但它們是基于依賴緩存的,只有在相關依賴發生變化時才會重新計算。

計算屬性示例

computed: {reversedMessage() {return this.message.split('').reverse().join('');}
}

reversedMessage 會返回 message 字符串的反轉版本,并且只有當 message 發生變化時,reversedMessage 才會重新計算。

結語

本文介紹了 Vue 的一些基礎語法,包括如何創建 Vue 實例、數據綁定、事件處理、條件渲染、列表渲染、雙向綁定以及計算屬性。這些基礎知識為你進一步深入學習 Vue.js 打下了良好的基礎。掌握這些基本概念之后,你可以更好地利用 Vue 構建動態的 Web 應用。

希望這篇博客對你有所幫助!如果有任何問題或建議,歡迎留言討論。

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

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

相關文章

Flask + Pear Admin Layui 快速開發管理后臺

框架介紹 Flask 就不用過多介紹了, Pear Admin Layui 是基于 Layui 的一套管理后臺前端開源模板, 主打一個開箱即用, 對于不喜歡 React/Vue 等這些還需要大量學習成本的前端開發者來說, 可以說是相當友好了. 項目官網: https://gitee.com/pear-admin/pear-admin-layui 項目的作…

git push

在 git push 命令中&#xff0c;分支名稱的順序和含義非常重要。其基本格式如下&#xff1a; git push <remote> <local_branch>:<remote_branch>各部分解釋 <remote>&#xff1a;遠程倉庫的名稱&#xff08;如 origin&#xff09;。<local_branc…

wordpress 利用 All-in-One WP Migration全站轉移

導出導入站點 在插件中查詢 All-in-One WP Migration備份并導出全站數據 導入 注意事項&#xff1a; 1.導入部分限制50MB 寶塔解決方案&#xff0c;其他類似&#xff0c;修改php.ini配置文件即可 2. 全站轉移需要修改域名 3. 大文件版本&#xff0c;大于1G的可以參考我的…

藍橋杯補題

方法技巧&#xff1a; 1.進行循環暴力騙分&#xff0c;然后每一層的初始進行判斷&#xff0c;如果已經不滿足題意了&#xff0c;那么久直接continue&#xff0c;后面的循環就不用浪費時間了。我們可以把題目所給的等式&#xff0c;比如說有四個未知量&#xff0c;那么我們可以用…

MySQL:鎖

按粒度分類 全局鎖 含義&#xff1a;全局鎖會鎖定整個數據庫實例&#xff0c;在其生效期間&#xff0c;其他事務無法對數據庫進行任何讀寫操作。常用于數據遷移、數據備份場景。 表級鎖 表鎖&#xff1a;是對整張表進行鎖定的機制。實現邏輯簡單&#xff0c;加鎖和釋放鎖速…

數字政府政務服務領域智能化應用解決方案

數字政府政務服務領域智能化應用 解決方案 一、方案背景 在數字經濟蓬勃發展的當下&#xff0c;數字化轉型已成為政府提升治理能力、優化公共服務、增強競爭力的關鍵路徑。黨的十九屆四中全會明確提出 “推進數字政府建設”&#xff0c;這為政府的數字化轉型指明了方向。 隨…

03--Deepseek服務器部署與cjson解析

一、ollama部署deepseek模型 1、Ollama 是一個開源的本地大語言模型運行框架&#xff0c;專為在本地機器上便捷部署和運行大型語言模型&#xff08;LLM&#xff09;而設計。 Ollama 教程&#xff1a;從 0 到 1 全面指南 教程【全文兩萬字保姆級詳細講解】 -CSDN博客 1.下載o…

棧(算法)

在 C 里&#xff0c;棧是一種遵循后進先出&#xff08;LIFO&#xff09;原則的數據結構。下面從多個方面為你介紹 C 棧&#xff1a; 1. 使用標準庫中的std::stack C 標準庫提供了std::stack容器適配器&#xff0c;能方便地實現棧的功能。以下是簡單示例&#xff1a; cpp #in…

UniApp 頁面布局自定義頭部導航

動態計算頭部高度與內容偏移量&#xff1a;實現 UniApp 頁面布局的精準適配 在移動端應用開發中&#xff0c;頁面布局的精準適配是一個關鍵問題。尤其是在 UniApp 中&#xff0c;不同設備的屏幕尺寸、狀態欄高度以及頭部布局的差異&#xff0c;可能導致頁面內容錯位或顯示不全…

verilog學習--1、語言要素

先看一個例子 /*This is first Verilog progaram*/ timescale 1ns/1ns module HalfAdder(A,B,Sum,Carry);input A,B;output Sum, Carry; /**/assign #2 SumA^B;assign #5 CarryA&B&#xff1b; endmodule; Verilog以module為單位編寫&#xff0c;每個文件一個module&#…

AC 自動機 洛谷P3808 P3796 P5357

洛谷P3808 #include <bits/stdc.h> using namespace std; const int maxn 1e6 5; int ch[maxn][30], fa[maxn], End[maxn]; int cnt 0 , n; int get_num(char c){return c - a;} void build(string s){int cur 0, len s.length();for(int i 0; i < len; i){int…

C++藍橋杯實訓篇(二)

片頭 嗨咯~小伙伴們&#xff01;今天我們來一起學習算法和貪心思維&#xff0c;準備好了嗎&#xff1f;咱們開始咯&#xff01; 第1題 數位排序 對于這道題&#xff0c;我們需要自己寫一個排序算法&#xff0c;也就是自定義排序&#xff0c;按照數位從小到大進行排序。 舉一…

redisson常用加鎖方式

RLock lock redissonClient.getLock("lock:order:" order);和redissonDistributedLocker.tryLock("lock:order:" order&#xff0c; TimeUnit.SECONDS, RedisLockKey.DEFAULT_WAIT_TIME, RedisLockKey.DEFAULT_HOLD_TIME);這兩種加鎖方式的區別如下&…

Go 微服務框架 | 路由實現

文章目錄 不用框架實現web接口實現簡單的路由實現分組路由支持不同的請求方式支持同一個路徑的不同請求方式前綴樹應用前綴樹完善路由代碼 不用框架實現web接口 // blog main.go 文件 package mainimport ("fmt""log""net/http" )func main() {…

zabbix中通過模板實現自動發現對tcp端口批量監控

主要為了解決監控大量端口&#xff0c;避免繁瑣的重復操作監控項和觸發器 諸位~ 僅供參考哈 自動發現監控參考地址: https://blog.csdn.net/qq_37510195/article/details/130893655 模板 首先創建一個模板 自定義名稱和群組 創建自動發現規則 模板——自動發現——創建發現規則…

Mysql備忘記錄

1、簡介 Mysql操作經常忘記命令&#xff0c;本文將持續記錄Mysql一些常用操作。 2、常見問題 2.1、忘記密碼 # 1、首先停止Mysql服務 systemctl stop mysqld # windows 從任務管理器里面停 # 2、更改配置文件 my.cnf (windows是 ini文件) vim /etc/my.cnf 在[mysqld]下面添…

【藍橋杯】15屆JAVA研究生組F回文字符串

一、思路 1.這題去年考的時候想的是使用全排列進行嘗試&#xff0c;實際不用這么麻煩&#xff0c;只用找到第一個和最后一個非特殊字符串的位置&#xff0c;然后分別向內檢查是否對稱&#xff0c;向外檢查是否對稱直到左指針小于0(可以通過添加使其對稱) 2.至于如何找到第一個…

X 進制減法

題目鏈接&#xff1a; 思路&#xff1a; X進制數321怎么轉換為十進制數為65&#xff1f;如下圖&#xff1a; ①題目要求我們求 A - B 的最小值&#xff0c;對第 i 位&#xff0c;要求 A[i] - B[i] 的最小值&#xff0c;當進制越小的時候差值越小&#xff0c;但進制要比 max&…

java線程安全-單例模式-線程通信

首先看看單例模式的寫法 首先我們先來回顧一下餓漢式單例模式&#xff1a; class Singleton{private static Singleton singletonnew Singleton();private Singleton(){}public static Singleton getInstrance(){return singleton;} } public class Test{public static void …

大數據技術之SPARK

Spark Core 什么是 RDD 代碼中是一個抽象類&#xff0c;它代表一個彈性的、不可變、可分區、里面的元素可并行計算的集合 彈性 存儲的彈性&#xff1a;內存與磁盤的自動切換&#xff1b; 容錯的彈性&#xff1a;數據丟失可以自動恢復&#xff1b; 計算的彈性&#xff1a;…