一文帶你搞懂Vue3的基本語法
1.通過 CDN 使用 Vue3
你可以借助 script 標簽直接通過 CDN 來使用 Vue:
<script src="https://unpkg.com/vue@next"></script>
通過 CDN 使用 Vue 時,不涉及“構建步驟”。這使得設置更加簡單,并且可以用于增強靜態(tài)的 HTML 或與后端框架集成
接下來我們從 Hello Vue!! 的代碼開始學起
<div id="hello-vue" class="demo">
{{ message }}
</div>
<script>
const HelloVueApp = {
data() {
return {
message: 'Hello Vue!!'
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>
mount('#hello-vue') 將 Vue 應用 HelloVueApp 掛載到 <div id="hello-vue"></div> 中
{{ }} 用于輸出對象屬性和函數返回值
{{ message }} 對應應用中 message 的值
輸出:

data 選項是一個函數。Vue 在創(chuàng)建新組件實例的過程中調用此函數。它應該返回一個對象,然后 Vue 會通過響應性系統(tǒng)將其包裹起來,并以 $data 的形式存儲在組件實例中
我們可以在組件中添加方法,使用 methods 選項,該選項包含了所需方法的對象。
以下實例我們添加了 methods 選項,選項中包含了 increment() 方法:
<script>
const HelloVueApp = {
data() {
return {
count: 521
}
},
methods: {
increment() {
// this 指向該組件實例
this.count++
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>2.Vue3 模板語法
Vue 使用了基于 HTML 的模板語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實例的數據。
Vue 的核心是一個允許你采用簡潔的模板語法來聲明式的將數據渲染進 DOM 的系統(tǒng)。
結合響應系統(tǒng),在應用狀態(tài)改變時, Vue 能夠智能地計算出重新渲染組件的最小代價并應用到 DOM 操作上。
文本
數據綁定最常見的形式就是使用 {{...}}的文本插值:
<div id="app">
<p>{{ message }}</p>
</div>
Html
使用 v-html 指令用于輸出 html 代碼:
<div id="hello-vue" class="demo">
<span v-html="rawHtml"></span>
</div>
<script>
const HelloVueApp = {
data() {
return {
rawHtml: '<span style="color: red">這里會顯示紅色!</span>'
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>

屬性
HTML 屬性中的值應使用 v-bind 指令
<style>
.class1 {
background: #444;
color: #eee;
}
</style>
<div id="app">
<label for="r1">修改顏色</label><input type="checkbox" v-model="use" id="r1">
<br/><br/>
<div v-bind:class="{'class1': use}">
v-bind:class 指令
</div>
</div>
<script>
const app = {
data() {
return {
use: false
}
}
}
Vue.createApp(app).mount('#app')
</script>
demo:點擊按鈕可以實現div塊變色

表達式
Vue.js 都提供了完全的 JavaScript 表達式支持
例如:
<div id="app">
算數表達式:{{521 + 1314}}<br/>
三目表達式:{{ok ? 'YES' : 'NO'}}<br/>
字符串反轉:{{ message.split('').reverse().join('') }}<br/>
</div>
<script>
const app = {
data() {
return {
ok: true,
message: 'IMUSTCTF!'
}
}
}
Vue.createApp(app).mount('#app')
</script>
瀏覽器輸出:
算數表達式:1835
三目表達式:YES
字符串反轉:!FTCTSUMI
指令
指令是帶有 v- 前綴的特殊屬性。
指令用于在表達式的值改變時,將某些行為應用到 DOM 上。如下例子:
<div id="app">
<p v-if="seen">現在你看到我了</p>
</div>
<script>
const app = {
data() {
return {
seen: true /* 改為false,信息就無法顯示 */
}
}
}
Vue.createApp(app).mount('#app')
</script>
這里, v-if 指令將根據表達式 seen 的值( true 或 false )來決定是否插入 p 元素
另外還有其它很多指令,每個都有特殊的功能。例如,v-for 指令可以綁定數組的數據來渲染一個項目列表:
<div id="app">
<ol>
<li v-for="site in sites">
{{ site.text }}
</li>
</ol>
</div>
<script>
const app = {
data() {
return {
sites: [
{text: 'Google'},
{text: 'IMUSTCTF'},
{text: 'Taobao'}
]
}
}
}
Vue.createApp(app).mount('#app')
</script>

參數
參數在指令后以冒號指明。例如, v-bind 指令被用來響應地更新 HTML 屬性:
<div id="app">
<p><a v-bind:href="url">百度網</a></p>
</div>
<script>
const app = {
data() {
return {
url: 'https://www.baidu.com'
}
}
}
Vue.createApp(app).mount('#app')
</script>
在這里 href 是參數,告知 v-bind 指令將該元素的 href 屬性與表達式 url 的值綁定
也可以使用縮寫:
<a :href="url"></a>
另一個例子是 v-on 指令,它用于監(jiān)聽 DOM 事件:
<!-- 完整語法 --> <a v-on:click="doSomething"> ... </a> <!-- 縮寫 --> <a @click="doSomething"> ... </a> <!-- 動態(tài)參數的縮寫 (2.6.0+) --> <a @[event]="doSomething"> ... </a>
3.模板用戶輸入雙向綁定
在 input 輸入框中我們可以使用 v-model 指令來實現雙向數據綁定:
<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>
<script>
const app = {
data() {
return {
message: 'Dahe'
}
}
}
Vue.createApp(app).mount('#app')
</script>
v-model 指令用來在 input、select、textarea、checkbox、radio 等表單控件元素上創(chuàng)建雙向數據綁定,根據表單上的值,自動更新綁定的元素的值
按鈕的事件我們可以使用 v-on 監(jiān)聽事件,并對用戶的輸入進行響應。
以下實例在用戶點擊按鈕后對字符串進行反轉操作:
<div id="app">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">反轉字符串</button>
</div>
<script>
const app = {
data() {
return {
message: 'XIAOQIANWOAINI!'
}
},
methods: {
reverseMessage() {
this.message = this.message
.split('')
.reverse()
.join('')
}
}
}
Vue.createApp(app).mount('#app')
</script>
到此這篇關于一文帶你搞懂Vue3的基本語法的文章就介紹到這了,更多相關Vue3基本語法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vuepress生成文檔部署到gitee.io的注意事項及說明
這篇文章主要介紹了Vuepress生成文檔部署到gitee.io的注意事項及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
vue中使用keep-alive動態(tài)刪除已緩存組件方式
這篇文章主要介紹了vue中使用keep-alive動態(tài)刪除已緩存組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
vue項目啟動出現cannot GET /服務錯誤的解決方法
這篇文章主要介紹了vue項目啟動出現cannot GET /服務錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04

