Vue简介
Vue.js(读音 /vjuː/,类似于 view),是一款开源的 JavaScript 框架,用于构建用户界面的渐进式框架。
Vue.js的核心是一个轻量级的视图层库,易于和其他库或已有项目整合,但同时也能与配套的工具和库一起使用,打造复杂的单页应用。Vue.js 由尤雨溪创建并维护,其设计思想受到了 AngularJS 的启发但试图避免其复杂性。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js自身不是一个全能框架——它只聚焦于视图层。因此它很容易与其它库或已有项目整合。
优势与特点
Vue.js 提供了数据驱动的组件,一个简单灵活的 API,使得开发者可以用少量的代码实现复杂的功能。它有许多显著的特点,如:
易用:Vue.js 的设计从易用出发,其 API 能够覆盖大多数使用场景,且只需短时间的学习和阅读就能上手开发。
灵活:Vue.js 的核心库聚焦视图层,配合现代化的工具和支持库,能够轻松构建复杂的单页应用。
高效:Vue.js 的高效主要体现在其轻量和最小化的 CPU 资源消耗,使得 Vue.js 应用的性能优于大部分框架。
Vue实例
在使用 Vue.js 之前,我们需要先引入 Vue.js 库。引入后,我们可以使用 new Vue() 来创建一个 Vue 实例:
在创建 Vue 实例时,需要传入一个选项对象,该对象可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。完整的选项列表可以在 Vue.js 的 API 文档中查看。
在创建和挂载实例后,可以通过 vm 变量来访问该 Vue 实例。Vue 实例也会代理其 data 对象上发在 Vue 实例化过程中的所有属性。例如,如果我们的数据对象包含一个 message 属性
我们还可以通过 vm.$data 访问原始数据对象,Vue 实例同样代理了 data 对象上所有属性,所以访问 vm.$data.message 与访问 vm.message 是相同的。
每个 Vue 实例都会在被创建时进行一系列的初始化过程——例如,需要设置数据监听、编译模板、挂载实例到 DOM、在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,给用户在不同阶段添加自己的代码。。
Vue实例生命周期
以下是 Vue 实例的生命周期过程:
1.创建阶段:在这个阶段,Vue 实例被 new Vue() 创建,初始化事件和生命周期,然后开始处理 props,methods,data,computed 和 watch 等选项。最后,beforeCreate 和 created 钩子被调用。
2.挂载阶段:在这个阶段,Vue 实例编译模板成为可渲染的函数,然后 beforeMount 钩子被调用,然后 Vue 实例被挂载到指定的元素上,mounted 钩子随后被调用。
3.更新阶段:在这个阶段,如果 Vue 实例的数据发生改变,将导致视图重新渲染。在重新渲染之前和之后,beforeUpdate 和 updated 钩子会被调用。
4.销毁阶段:在这个阶段,Vue 实例从 DOM 中解绑,销毁所有事件监听和子实例,beforeDestroy 和 destroyed 钩子被调用。
Vue 的生命周期钩子就像是在实例生命周期的不同阶段运行的函数,如 created、updated、mounted 和 destroyed。生命周期钩子的 this 上下文指向调用它的 Vue 实例。通过以上介绍,我们可以对 Vue 有一个基本的了解,但 Vue 的内容远不止这些。从组件系统,到路由,到状态管理,到构建工具,Vue 有很多知识需要我们去掌握,希望大家在学习的过程中能够感受到 Vue 带来的乐趣。
Vue应用说明
以下是 Vue 实例的生命周期过程:
1.这个模块需要做什么 ,不需要做什么.首先,我们从这两个问题入手思考,这两个问题也是为了让我们确定这个模块的功能边界。比如,我们设计一个弹窗组件,我们从这两个问题出发思考,它需要做什么,弹出、显示内容、关闭,没了。显示什么内容呢,它不需要关心,这就是它不需要做的事情。从这两个问题出发,去把握好模块的功能边界,划分出来的模块结构也会比较清晰。
2.模块向外暴露什么,向外接受什么.这其实是考虑如何进行数据通信了。在 Vue 中,最常见的就是父子之间的通信了,父组件通过 props 传递数据给子组件,子组件通过 emit 触发自定义事件发送信息给父组件。这就是父子之间的通信过程。
3.当这个组件是某个功能模块内部使用,比如局部注册的组件,因为它局限于某个模块下,并且数据量大的时候,传递引用类型就方便一点。但还是要记得不能直接修改引用对象的值。 若需要有对这个引用某个值进行操作,可以将这个值赋予 data 或者 computed 属性,再去相对应的操作。(这也是为了将数据修改约束在顶层组件,这样做的好处是数据流清晰,只有一处修改数据的地方。出问题追溯数据也比较好追。因为框架是基于数据驱动,要面对的问题都是因为数据,所以要对数据的结构、来源,去向以及修改做好约束,或者管理好数据。)
4.销毁阶段:在这个阶段,Vue 实例从 DOM 中解绑,销毁所有事件监听和子实例,beforeDestroy 和 destroyed 钩子被调用。
对数据的结构、来源,去向以及修改做好约束,或者管理好数据。因为数据驱动,我们要高度关注数据,合理设计数据结构以及管理数据。数据配置是我在项目中用得最多的一种数据管理方式,其实在很多框架细节上,随处可见。