Vue介紹與入門(一篇入門)

Vue.js 是一個流行的 JavaScript 框架,專門用于構建用戶界面和單頁面應用程序。它簡單易學,但功能強大,能夠幫助開發者快速構建交互性強的 Web 應用。

本教程旨在幫助那些剛開始學習 Vue.js 的開發者快速入門,并掌握一些基礎知識。在這個教程中,我們將介紹 Vue.js 的一些重要概念,比如組件、數據綁定、指令等,幫助你了解如何使用 Vue.js 來構建應用程序。

請注意,本教程假設你已經具有一定的 JavaScript 和 HTML/CSS 基礎知識。如果你想要更好地理解本教程內容,建議在繼續學習之前先學習一些基礎知識。

作者建議:學習知識在于深度理解,多動手、多動腦,總能更快地領悟。不要僅僅停留在閱讀代碼的層面,親自動手敲打一遍,會帶來更豐富的收獲。通過實踐,我們能夠更深入地理解知識,掌握技能,并且在解決問題時更加得心應手。相信自己的能力,堅持不懈地實踐,你將會取得更大的進步和成就。讓學習成為一種習慣,讓動手實踐成為你提升的捷徑,加油!你是最棒的!

本篇博客的編輯工具:HBuilderX文檔

建議學完:HTML? Css? ?JavaScript 再來學習Vue

Vue.js是什么

Vue(讀音 /vju? /,類似于view) 是一套用于構建用戶界面的漸進式框架。Vue 的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合.?Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成為前端三 大主流框架!

Vue官網:Vue.js

Vue.js優點

1.體積小--->壓縮后33k

2.更高的運行效率

? ? ?用JQuery或者原生的JavaScriptDOM操作函數對DOM進行頻繁操作的 時候,瀏覽器要不停的渲染新的DOM樹,導致頁面看起來非常卡頓。

? ? 基于虛擬dom,一種可以預先通過JavaScript進行各種計算,把最終的 DOM操作計算出來并優化的技術,最后在計算完畢才真正將DOM操作提交。

3.雙向數據綁定,簡化Dom操作

? ? ? 通過MVVM思想實現數據的雙向綁定,讓開發者不用再操作dom對象, 把更多的精力投入到業務邏輯上.

? ? ? MVVM是Model-View-ViewModel的簡寫。MVVM 就是將其中的View的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開.

?

4.生態豐富,學習成本低

? ? ? ?市場上擁有大量成熟、穩定的基于vue.js的ui框架、常用組件!來即用實現 快速開發!對初學者友好、入門容易、學習資料多.

Vue安裝

1.下載Vue.js文件并導入js文件

?

?

2.在HTML文件中引用vue.js文件

這樣一個基礎的vue項目(vue項目有進階版)就完成了

第一個Vue程序

效果演示:

代碼:?

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app">{{message}}</div><script>var app = new Vue({el:'#app',data:{message: 'Hello Vue!'}})</script></body>
</html>

語法解釋:

{{ 變量 }} ,插值表達式獲取data數據

new Vue();創建Vue對象(VM對象)

el:數據掛載的dom對象

Vue會管理el選項命中的元素及其內部的后代元素

可以使用其他的選擇器,但是建議使用ID選擇器

可以使用其他的閉合標簽,不能使用HTML和BODY

Vue中用到的數據定義在data中

data 中可以寫復雜類型的數據,如對象,數組

Vue指令

指令帶有前綴 v- 開頭,以表示它們是 Vue 提供的特殊屬性

1.v-text

作用是設置標簽的文本內容

默認寫法會替換全部內容,使用差值表達式可以替換指定內容

內部支持寫表達式

代碼演示:<div v-text="message"><p>你好</p></div>

這個v-text與{{message}}有區別,我們在下面與v-html一起討論

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><p v-text="message">你好</p><p>你好{{message}}</p></div><script>var app = new Vue({el:'#app',data:{message: 'Hello Vue!'}})</script></body>
</html>

效果演示:

2.v-html

作用是設置元素的innerHTML

內容中有html結構會被解析為標簽

內部支持寫表達式

代碼演示:<div v-html="message">你好</div>

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><div v-text="message"><p>你好</p></div><div>你好{{message}}</div><div v-html="message">你好</div></div><script>var app = new Vue({el:'#app',data:{message: '<p>Hello vue</p>'}})</script></body>
</html>

效果演示:

3.{{message}}? v-text v-html區別

{{message}}:這個語法也就是將message的值插在網頁中(他不會覆蓋其他的值);

v-text v-html:會將這個標簽的內容修改或者填入message中的值

v-text:不能識別message中的標簽

v-html:可以識別message中的標簽

4.v-on

作用是為元素綁定事件(這里的事件指的是JavaScript中學習的事件,如果不知道可以跳轉:JavaScript學習)

事件名不需要寫on指令可以簡寫為@

綁定的方法定義在methods屬性中,可以傳入自定義參數

代碼演示:

?? ??? ??? ?<input type="button" value="測試1" v-on:click = "test()"/>
?? ??? ??? ?<input type="button" value="測試2" @click="test()"/>

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><input type="button" value="測試1" v-on:click = "test()"/><input type="button" value="測試2" @click="test()"/></div><script>var app = new Vue({el:'#app',data:{message: '<p>Hello vue</p>'},methods:{test(){alert("你好登山者");}}})</script></body>
</html>

效果演示:

?5.v-model

作用是便捷的設置和獲取表單元素的值

綁定的數據會和表單元素值相關聯

綁定的數據表單元素的值 雙向數據綁定

代碼演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><input type="button" value="測試1" @click = "test()"/><div>{{message}}</div></div><script>var app = new Vue({el:'#app',data:{message: ''},methods:{test(){this.message = "加油登山者";}}})</script></body>
</html>

效果演示:

6.v-show

作用是根據真假切換元素的顯示狀態

原理是修改元素的display,實現顯示隱藏

指令后面的內容,最終都會解析為布爾值

值為true元素顯示,值為false元素隱藏

數據改變之后,對應元素的顯示狀態會同步更新

代碼演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><img src="img/1.jpg" v-show="key" /><input type="button" value="測試1" @click="test()" /></div><script>var app = new Vue({el: '#app',data: {message: '',key: true},methods: {test() {this.key = false;}}})</script></body>
</html>

效果演示:

?7.v-if

作用是根據表達式的真假切換元素的顯示狀態

本質是通過操縱dom元素來切換

顯示狀態表達式的值為true,元素存在于dom中,為false,從dom中移除 頻繁的切換v-show,反之使用v-if,前者的切換消耗小

代碼:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><img src="img/1.jpg" v-if="key" /><div v-else>隱藏</div><input type="button" value="測試1" @click="test()" /></div><script>var app = new Vue({el: '#app',data: {message: '',key: true},methods: {test() {this.key = false;}}})</script></body>
</html>

效果:

8.v-bind

作用是為元素綁定屬性

完整寫法是v-bind:屬性名

簡寫的話可以直接省略v-bind,只保留:屬性名

代碼:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><script src="js/vue.js"></script><body><div id="app"><img v-bind:src="img"/><img :src="img" :title="title"/></div><script>var app = new Vue({el: '#app',data: {img:"img/1.jpg",title:"這是一個手機"}})</script></body>
</html>

效果:

?

9.v-for

作用是根據數據生成列表結構

數組經常和v-for結合

使用語法是(item,index)in數據

item 和index 可以結合其他指令一起使用

數組長度的更新會同步到頁面上是響應式的

為循環綁定一個key值 :key=”值” 盡可能唯一

代碼:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js"></script></head><body><div id="app"><select><option>請選擇</option><option v-for="city in citys">{{city}}</option></select><table border="1"><tr><td>序號</td><td>姓名</td><td>年齡</td></tr><tr v-for="(obj,index) in objs"><td>{{index+1}}</td><td>{{obj.name}}</td><td>{{obj.age}}</td></tr></table></div><script>var app = new Vue({el:'#app',data:{citys:['上海','陜西','四川'],objs:[{name:'張三',age:19},{name:'李四',age:18}]}})</script></body>
</html>

效果:

Vue 實例生命周期?

每個 Vue 實例在被創建時都要經過一系列的初始化過程——例如,需要設置數 據監聽、編譯模板、將實例掛載到 DOM 并在數據變化時更新 DOM 等。同時 在這個過程中也會運行一些叫做生命周期鉤子的函數,這給了用戶在不同階段添 加自己的代碼的機會

簡單說:一個組件從開始到最后消亡所經歷的各種狀態,就是一個組件的生命周期

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

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

相關文章

【UE5.1 角色練習】12-坐騎——Part2(讓角色騎上坐騎)

目錄 前言 效果 步驟 一、坐騎的父類 二、將角色附加到坐騎 三、添加坐姿 四、騎上坐騎 五、從坐騎上下來 前言 在上一篇&#xff08;【UE5.1 角色練習】11-坐騎——Part1&#xff08;控制大象移動&#xff09;&#xff09;基礎上繼續實現角色騎上坐騎的功能。 效果 …

語言的數據結構:樹與二叉樹(二叉樹篇)

語言的數據結構&#xff1a;樹與二叉樹&#xff08;二叉樹篇&#xff09; 前言概念特別的二叉樹滿二叉樹完全二叉樹 存儲結構順序存儲鏈式存儲 查找方式 前言 上文說到了樹&#xff0c;有人認為二叉樹是樹的每一個分支都有兩個子節點。其實這也對。但二叉樹在此基礎上還做了限…

RS422串口通信協議介紹和基礎代碼實現

**RS-422串口協議介紹**RS-422是一種工業標準的通信接口&#xff0c;其全稱是“平衡電壓數字接口電路的電氣特性”。它是在RS-232的基礎上發展而來&#xff0c;旨在解決RS-232通信距離短和速率低的缺點。以下是對RS-422串口協議的詳細介紹&#xff1a;傳輸速率與距離&#xff1…

MyCAT 2 簡單入門

MyCAT 2 基礎 什么是 MyCAT 2&#xff1f; MyCAT 2 是一款開源的數據庫中間件&#xff0c;它主要用于解決數據庫的分庫分表、讀寫分離等問題。MyCAT 2 基于 MyCAT 1 的架構進行優化和重構&#xff0c;具有更高的性能和穩定性&#xff0c;支持多種數據庫類型&#xff0c;包括 …

【QCustomPlot實戰系列】QCPGraph區域高亮

使用QCPDataSelection來設置選中的區域&#xff0c;并將QCPGraph的可選擇區域設置成QCP::stMultipleDataRanges void AreaPieces::initCustomPlot(QCustomPlot *parentPlot) {QVector<double> x {0, 1, 2, 3, 4, 5, 6, 7, 8};QVector<double> y {200, 560, 750…

《mysql篇》--mysql常用命令

數據庫操作 顯示當前數據庫 show databases;(database 后面要加s) 這行命令用來顯示當前有多少個數據庫 //mysql中有自帶的四個庫 創建數據庫 create database 數據庫名(name); 創建一個數據庫 create dabase if not exists <數據庫名(name)>; //如果系統有與當前創建…

前端vite+vue3——利用環境變量和路由區分h5、pc模塊打包(從0到1)

?前言 大家好&#xff0c;我是yma16&#xff0c;本文分享 前端vitevue3——利用環境變量和路由對前端區分h5和pc模塊打包&#xff08;從0到1&#xff09;。 背景&#xff1a; 前端本地開發pc和h5的項目&#xff0c;發布時需要區分開h5和pc的頁面 vite Vite 通過在一開始將應…

圖片怎么加水印?快來試試這6個圖片加水印方法(2024年新)

圖片怎么加水印&#xff1f;作為打工人在日常的工作生活中總會遇到各種各樣的工作難題&#xff0c;相信從事電商或者是設計等工作的小伙伴們&#xff0c;遇到最多的問題應該就是給圖片添加水印了。為什么要給圖片加水印&#xff1f;其實給圖片加水印最主要的目的是保護我們的圖…

刷題——二叉樹的中序遍歷

雙指針法 void midorder(vector<int>&res, TreeNode* root){if(root NULL) return;midorder(res, root->left);res.push_back(root->val);midorder(res, root->right);}vector<int> inorderTraversal(TreeNode* root) {// write code herevector<…

代碼隨想錄算法訓練營第四十九天|LeetCode300 最長遞增子序列、LeetCode674 最長連續遞增序列、LeetCode718 最長重復子數組

題1&#xff1a; 指路&#xff1a;300. 最長遞增子序列 - 力扣&#xff08;LeetCode&#xff09; 思路與代碼&#xff1a; 求最長遞增子序列&#xff0c;那么就定義一個數組dp[i]&#xff0c;含義為最長遞增子序列。這里有一個小問題&#xff0c;這里的序列的范圍為何。如果…

一文入門Makefile

今天我們來玩玩Makefile。 這邊是借鑒的陳皓老師的《跟我一起寫 Makefile》 pdf下載鏈接如下。 鏈接&#xff1a;https://pan.baidu.com/s/1woRq2nEkgzLv1o5uE0FZHg?pwdmhrh 提取碼&#xff1a;mhrh 我們之前已經算是入門了gcc&#xff0c;那我們的下一站就是Makefile&…

http和https請求總結

http請求是不安全的請求的端口是80&#xff0c;https請求是安全的請求的端口是443 但是請求安全也不是絕對的。 要想先了解https就的先說幾個概念 1、證書 2、加密算法 openssl TLS/SSL 3、協議x509協議 http傳輸數據都是明文&#xff0c;在數據傳輸的過程會經過很長的鏈路…

C#面: 能夠將非靜態的方法覆寫成靜態方法嗎?

在C#中&#xff0c;不能將非靜態方法覆寫成靜態方法。這是因為靜態方法是屬于類的&#xff0c;而非靜態方法是屬于類的實例的。覆寫&#xff08;重寫&#xff09;是指在派生類中重新實現基類中的虛方法或抽象方法&#xff0c;以改變其行為。而靜態方法是無法被派生類所繼承的&a…

嵌入式學習(Day 51:ARM指令/匯編與c語言函數相互調用)

1.Supervisor模式與SVC模式 Supervisor模式是ARM處理器的一個特權工作模式&#xff0c;允許執行特權指令和訪問特權資源。SVC模式&#xff08;Supervisor Call&#xff09;是與Supervisor模式相關的一個功能或指令&#xff0c;用于從用戶模式切換到Supervisor模式&#xff0c;…

1、Redis系列-Redis高性能原理詳解

Redis高性能原理詳解 Redis是一款高性能的內存數據庫&#xff0c;廣泛應用于需要快速讀寫訪問的數據密集型應用中。它的高性能得益于多方面的設計和優化。以下是Redis高性能實現的詳細解釋&#xff1a; 1. 單線程架構 Redis采用單線程架構來處理客戶端請求&#xff0c;這與傳…

服務器流量收發測試-續篇

文章目錄 一、概述二、普通java工程1&#xff0c;pom文件2&#xff0c; 定時任務3&#xff0c;打包4&#xff0c;jar運行 三、打包docker鏡像1&#xff0c;鏡像打包配置docker環境&#xff1a;2&#xff0c;連接遠程鏡像倉庫 四、部署運行1. 容器運行2. 單容器多次運行jar3. 容…

大模型應用研發基礎環境配置(Miniconda、Python、Jupyter Lab、Ollama等)

老牛同學之前使用的MacBook Pro電腦配置有點舊&#xff08;2015 年生產&#xff09;&#xff0c;跑大模型感覺有點吃力&#xff0c;操作起來有點卡頓&#xff0c;因此不得已撿起了塵封了快兩年的MateBook Pro電腦&#xff08;老牛同學其實不太喜歡用 Windows 電腦做研發工作&am…

04_記錄鎖

記錄鎖&#xff08;Record Lock&#xff09; 文章目錄 記錄鎖&#xff08;Record Lock&#xff09;簡介原理加鎖流程鎖類型使用場景示例與其他鎖的對比結論 簡介 MySQL 中的記錄鎖&#xff08;Record Lock&#xff09;是行級鎖的一種&#xff0c;用于鎖定數據庫表中的特定行。…

從零開始做題:老照片中的密碼

老照片中的密碼 1.題目 1.1 給出圖片如下 1.2 給出如下提示 這張老照片中的人使用的是莫爾斯電報機&#xff0c;莫爾斯電報機分為莫爾斯人工電報機和莫爾斯自動電報機&#xff08;簡稱莫爾斯快機&#xff09;。莫爾斯人工電報機是一種最簡單的電報機&#xff0c;由三個部分組…

SelfReg-UNet:解決UNet語義損失,增強特征一致性與減少冗余的優化模型

SelfReg-UNet&#xff1a;解決UNet語義損失&#xff0c;增強特征一致性與減少冗余的優化模型 提出背景拆解類比&#xff1a;整理書架語義一致性正則化內部特征蒸餾為什么 UNet 會有語義損失&#xff1f; 提出背景 論文&#xff1a;https://arxiv.org/pdf/2406.14896 代碼&…