首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Vue.js基础教程】第2章 - Vue 实例与生命周期

【Vue.js基础教程】第2章 - Vue 实例与生命周期

作者头像
代码简单说
发布2026-06-16 14:10:55
发布2026-06-16 14:10:55
200
举报
文章被收录于专栏:代码简单说代码简单说
Vue.js基础教程:第2章 - Vue 实例

欢迎关注 『Vue.js基础入门教程』 专栏,持续更新中


标签:#Vue #前端开发 #Vue教程 #JavaScript #响应式编程


在这里插入图片描述
在这里插入图片描述
引言

有一次在面试中,我被问到:“如何用 Vue 创建一个待办事项应用?”当时我有点紧张,虽然知道用 Vue 是新建实例,但是要讲清楚其中的原理,突然就卡壳了。回家后,我决定好好研究一下 Vue 实例的基础知识,顺便写成这篇教程,分享给大家,希望你们看完不会像我当初那样尴尬!


什么是 Vue 实例?

每个 Vue 应用都是从一个 Vue 实例开始的。这就好比盖房子,Vue 实例是地基,有了它,整个应用才能稳固构建。

代码语言:javascript
复制
var vm = new Vue({
  // 选项
})

虽然 Vue 并没有完全遵循 MVVM 模型,但其设计灵感确实来自 MVVM。这就是为什么你经常会看到开发者用 vm(ViewModel 的缩写)作为 Vue 实例的变量名。

Vue 实例与组件的关系

一个 Vue 应用包含一个根实例,以及嵌套的组件树。例如,一个待办事项应用可能的结构如下:

代码语言:javascript
复制
根实例
└─ TodoList
   ├─ TodoItem
   │  ├─ TodoButtonDelete
   │  └─ TodoButtonEdit
   └─ TodoListFooter
      ├─ TodosButtonClear
      └─ TodoListStatistics

记住:每个组件本质上也是一个 Vue 实例。


数据与方法:响应式的魔力

Vue 的核心在于响应式系统。当数据发生变化时,视图会自动更新。这种“魔法”是如何实现的呢?来看一个例子:

代码语言:javascript
复制
var data = { a: 1 }
var vm = new Vue({
  data: data
})

vm.a === data.a // true
vm.a = 2
console.log(data.a) // 2
注意事项

响应式的限制:只有实例创建时 data 中声明的属性是响应式的。

代码语言:javascript
复制
vm.b = 'hi' // 不会触发视图更新

解决方法:在初始化时声明 b

代码语言:javascript
复制
data: { b: '' }

使用 Object.freeze

代码语言:javascript
复制
var obj = { foo: 'bar' }
Object.freeze(obj)
new Vue({
  data: obj
})

冻结对象后,响应式系统将无法追踪其变化。


Vue 实例的生命周期

创建一个 Vue 实例并不是简单的“new 一下”就完事了,它需要经历一系列的初始化步骤,比如:

  • 数据监听
  • 编译模板
  • 挂载 DOM
  • 响应数据变化
生命周期钩子

在实例初始化的不同阶段,Vue 提供了钩子函数,允许你插入代码。例如:

代码语言:javascript
复制
new Vue({
  data: { a: 1 },
  created() {
    console.log('a is: ' + this.a)
  }
})

常用的生命周期钩子包括:

  • created:实例创建完成后调用。
  • mounted:实例挂载完成后调用。
  • updated:数据更新后调用。
  • destroyed:实例销毁后调用。
注意事项

不要使用箭头函数定义钩子

代码语言:javascript
复制
created: () => console.log(this.a) // 错误,this 指向不正确

Vue 生命周期的图示

虽然刚开始学习时不必完全掌握,但这张图会是你日后开发中的宝藏:

在这里插入图片描述
在这里插入图片描述

总结

学习 Vue 实例是入门 Vue.js 的第一步。掌握它的初始化方式、数据绑定原理,以及生命周期钩子函数的使用,将为你构建复杂的 Vue 应用打下坚实基础。

所以,下一次面试官再问你如何用 Vue 开发一个待办事项应用,你就可以自信地回答了,不仅能说怎么做,还能讲明白其中的逻辑!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Vue.js基础教程:第2章 - Vue 实例
  • 引言
  • 什么是 Vue 实例?
    • Vue 实例与组件的关系
  • 数据与方法:响应式的魔力
    • 注意事项
  • Vue 实例的生命周期
    • 生命周期钩子
    • 注意事项
  • Vue 生命周期的图示
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档