Vue.js 初学者基础知识点总结 第一弹

一、Vue 的核心思想

声明式渲染

  • 命令式 :你需要详细地描述"如何做"(例如,用 JavaScript 直接操作 DOM:document.getElementById('app').innerText = 'Hello')。

  • 声明式 :你只需要告诉 Vue "你想要什么结果"(例如,在模板中写 {``{ message }}),Vue 会自动帮你完成 DOM 操作。这大大简化了代码。

数据驱动

Vue 的核心是数据与视图的绑定。当数据发生变化时,视图会自动更新。你不再需要手动操作 DOM,只需要关心如何改变数据。

组件化

将页面拆分成一个个独立、可复用的组件。每个组件都有自己的 HTML 结构、CSS 样式和 JavaScript 逻辑。像搭积木一样构建应用。

二、搭建一个 Vue 应用

快速引入

对于初学者或小型项目,可以直接通过 <script> 标签引入 Vue。

html 复制代码
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

创建应用实例

每个 Vue 应用都是通过 createApp 函数创建一个新的应用实例开始的。

javascript 复制代码
const { createApp } = Vue;

const app = createApp({
  // 这里是该组件的选项
});

挂载

应用实例必须被"挂载"到一个 DOM 元素上,它才会生效。

javascript 复制代码
app.mount('#app');
html 复制代码
<div id="app"></div>

三、模板语法

Vue 基于标准 HTML 扩展了一套模板语法,让你能够声明式地将组件实例的数据绑定到呈现的 DOM 上。

文本插值

使用"Mustache"语法(双大括号)将数据渲染为纯文本。

html 复制代码
<span>Message: {{ msg }}</span>

双大括号标签会被对应数据对象的 msg 属性的值替换。

原始 HTML

双大括号会将数据解释为纯文本。为了输出真正的 HTML,你需要使用 v-html 指令。

html 复制代码
<p>Using text interpolation: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>

属性绑定

Mustache 语法不能在 HTML 属性中使用。应使用 v-bind 指令。

html 复制代码
<div v-bind:id="dynamicId"></div>

条件渲染

  • v-if:根据条件的真假,来真正渲染或销毁元素/组件。
  • v-else:必须紧跟在 v-if 或 v-else-if 后面。
  • v-else-if:充当 v-if 的"else-if 块"。
  • v-show:通过 CSS 的 display 属性来控制显示/隐藏。元素始终会被渲染。
html 复制代码
<h1 v-if="awesome">Vue is awesome!</h1>
<h1 v-else>Oh no 😢</h1>

<h1 v-show="ok">Hello!</h1>

列表渲染

使用 v-for 指令基于一个数组或对象来渲染一个列表。

html 复制代码
<ul>
  <li v-for="item in items" :key="item.id">
    {{ item.message }}
  </li>
</ul>
  • 重要 :始终为每个项提供一个唯一的 key 属性,以便 Vue 能够跟踪每个节点的身份,从而重用和重新排序现有元素。

  • 事件处理 :使用 v-on 指令监听 DOM 事件。

通常,事件逻辑会比较复杂,所以我们会把它放到组件的 methods 中。

javascript 复制代码
const app = createApp({
  data() {
    return {
      name: 'Vue.js'
    }
  },
  methods: {
    greet(event) {
      alert(`Hello ${this.name}!`)
      // `event` 是原生 DOM event 对象
      if (event) {
        alert(event.target.tagName)
      }
    }
  }
})
html 复制代码
<button @click="greet">Greet</button>

表单输入绑定

使用 v-model 指令在表单输入元素和组件数据之间创建双向数据绑定。

  • <input type="text"> 和 <textarea> 使用 value 属性和 input 事件。
  • <input type="checkbox"> 和 <input type="radio"> 使用 checked 属性和 change 事件。
  • <select> 使用 value 属性和 change 事件。
html 复制代码
<input type="text" v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
相关推荐
莪_幻尘1 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马1 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut1 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia1232 小时前
实现完整 Tool Dispatcher
开发语言·前端
IT_陈寒2 小时前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
Mr_Mao3 小时前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒4 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
qwfy4 小时前
我要用 AI-native 架构,从零重建一套制造业 ERP/MES
vue.js·spring boot·架构
默_笙4 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
YIAN4 小时前
从跨域代理到 WebSocket:梳理前端实时通信的底层逻辑与完整实践
前端·websocket