哈嘍,各位小夥伴,歡迎來到我是wangfang呀的博客!我是我是wangfang呀,雖然還在編程的“菜鳥”階段,但我已經迫不及待地想和大家分享我一路上踩過的坑和學到的小技巧。如果你也曾為bug頭疼,那麼你來對地方了!今天的內容希望能夠給大家帶來一些靈感和幫助。

前言

  很多人一看 Vue,感覺無非就是標籤上多了點花裏胡哨的東西。但真上手,才發現—— 什麼?標籤不用管更新?數據一改頁面自己變?幾十行 JS 能幹過去一百行“原生 DOM 操作”? 別急,這一篇,帶你用最“開發者”的角度快速摸透 Vue 基礎語法精髓


1. 聲明式渲染:你只要寫數據,Vue 幫你更新 DOM!

  Vue 最牛的就是聲明式渲染。什麼意思?你不用再自己寫 document.getElementById("xxx").innerHTML = ... 你只需要告訴 Vue 你要什麼,Vue 自己幫你把數據“渲染成頁面”。

<div id="app">
  {{ message }}
</div>

<script>
const app = Vue.createApp({
  data() {
    return {
      message: 'Hello Vue!'
    }
  }
})
app.mount('#app')
</script>
  • {{ message }}插值表達式,會自動和 data 裏的 message 對應
  • 你只要改 message,頁面自動變,不用你管 DOM!

2. 數據綁定:插值表達式、v-bind,數據和視圖雙向“通電”

插值表達式:模板裏的 {{ xxx }}

  • 用在文本、屬性、甚至 JS 表達式(只要能返回值)
  • 會自動轉義(防 XSS),不用怕被插腳本
<span>你好,{{ userName }}</span>

v-bind:讓屬性也能“活起來”

你想動態改 class、id、src、title?直接 v-bind!

<img v-bind:src="imgUrl" />
<!-- 簡寫形式 -->
<img :src="imgUrl" />

v-bind 是單向綁定,只要數據變,頁面屬性就自動更新。


3. 指令系統:v-if/v-for/v-show,邏輯控制全靠它

Vue 之所以“像會思考的 HTML”,全靠指令系統

v-if:條件渲染

<p v-if="isLogin">歡迎回來,老鐵!</p>
  • isLogin 為 true 才渲染,false 直接 DOM 消失
  • 多分支寫法:v-else-ifv-else

v-show:顯示/隱藏(但不會銷燬 DOM)

<p v-show="showDetail">點開才有的內容</p>
  • 只是控制 display 樣式,切換速度快,不會頻繁銷燬/重建

v-for:循環列表

<ul>
  <li v-for="(item, idx) in items" :key="idx">
    {{ idx+1 }} - {{ item }}
  </li>
</ul>
  • items 是數組,自動遍歷
  • :key 必須有,性能優化用

4. 生命週期初識:Vue 實例是怎麼“出生-成長-消亡”的?

  Vue 每個組件/實例,都有一套“生命週期”。 你可以在每個階段掛鈎子函數,搞數據、做初始化、打日誌、收尾善後。

最常用的生命週期鈎子

鈎子 時機
beforeCreate 實例初始化前
created 實例已創建,data 可用
beforeMount 模板渲染前(還沒掛到 DOM)
mounted DOM 掛載完畢,可以操作頁面
beforeUpdate 響應式數據更新前
updated 更新並渲染完成
beforeUnmount 卸載前
unmounted 卸載完成

例子:

const app = Vue.createApp({
  data() { return { msg: "生命週期 demo" }},
  mounted() {
    console.log("DOM 已掛載,可以訪問頁面元素了");
  }
})

🎯 小結:你看見的“易用”,背後都是“自動化+響應式”大工程

  用 Vue,不用再寫那些“繁瑣、易錯、費勁心思的 DOM 操作”, 只要關心你的數據和業務邏輯,剩下的頁面刷新、狀態同步、生命週期全幫你兜底。

下次再有人説“前端很簡單,寫寫標籤而已”,你可以直接回懟一句:

“你以為 Vue 只是寫寫 HTML,其實背後是數據驅動、自動化的前端工程哲學!”

好啦,今天的內容就先到這裏!如果覺得我的分享對你有幫助,給我點個贊,順便評論吐個槽,當然不要忘了三連哦!感謝大家的支持,記得常回來,我是wangfang呀等着你們的下一次訪問!