Vue概念及常见命令介绍(1)

Vue概念及常见命令介绍(1)

Vue.js是JavaScript MVVM(Model-View-ViewModel)库,十分简洁,Vue核心只关注视图层,相对AngularJS提供更加简洁、易于理解的API。Vue尽可能通过简单的API实现响应的数据绑定和组合的视图组件。

Vue和MVVM模式

Vue概念及常见命令介绍(1)

MVVM模式即Model-View-ViewModel

Vue是以数据为驱动的,Vue自身将DOM和数据进行绑定,一旦创建绑定,DOM和数据将保持同步,每当数据发生变化,DOM会跟着变化。

ViewModel是Vue的核心,它是Vue的一个实例。Vue实例时作用域某个HTML元素上的,这个HTML元素可以是body,也可以是某个id所指代的元素。

DOM Listeners和Data Bindings是实现双向绑定的关键。DOM Listeners监听页面所有View层DOM元素的变化,当发生变化,Model层的数据随之变化;Data Bindings监听Model层的数据,当数据发生变化,View层的DOM元素随之变化。

Vue.js特点

简洁:页面由HTML模板+Json数据+Vue实例组成
数据驱动:自动计算属性和追踪依赖的模板表达式
组件化:用可复用、解耦的组件来构造页面
轻量:代码量小,不依赖其他库
快速:精确有效批量DOM更新
模板友好:可通过npm,bower等多种方式安装,很容易融入

Vue.js入门小例子

声明式渲染

本例子由HTML模板(View)+Json数据(Model)+Vue实例(ViewModel)组成。

创建Vue的实例,需传入一个选项对象,如:数据、挂载元素、方法、模生命周期钩子等。本例子中,选项对象的el属性为#app,表示Vue实例挂载在<div>...</div>元素上,data属性为exampleData,表示Model为exampleData。View中{{message}}是Vue的一种数据绑定语法,在运行时,{{message}}会被数据对象的message属性替换。

<!DOCTYPE html> <html> <head> <title>声明式渲染</title> <meta charset="utf-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> <!-- View --> <div> {{message}} </div> <script> //Model var exampleData = { message: 'Hello Vue!' } //ViewModel var app = new Vue({ el: '#app', data: exampleData }) </script> </body> </html>

双向绑定

在Vue中使用v-model在表单元素上实现双向绑定。当在输入框输入的信息发生变化,<p>...</p>中的信息随之变化;当通过控制台中的Console,修改exampleData.message的值,输入框中的信息也随之变化。

<!DOCTYPE html> <html lang="en"> <head> <title>双向绑定</title> <meta charset="utf-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> <!-- View --> <div> <p>{{message}}</p> <input type="text" v-model="message"> </div> <script> //Model var exampleData = { message: 'Hello Vue!' } //ViewModel var app = new Vue({ el: '#app', data: exampleData }) </script> </body> </html>

运行截图:

Vue概念及常见命令介绍(1)

Vue.js常用指令

Vue指令以v-开头,作用在HTML元素上,将指令绑定在元素上时,会给绑定的元素添加一些特殊行为,可将指令视作特殊的HTML属性(attribute)。

下面将介绍Vue中常用的几个内置指令。当然,Vue除了内置指令,也可以根据需求自定义指令。

v-if指令

条件判断指令,根据表达式值的真假来插入或删除元素,表达式返回一个布尔值,语法如下:

v-if = "expression"

例子:

在本例中,表达式是yes,no,和age>25,yes的值为true,因此在HTML中显示该元素,其他同理。

<!DOCTYPE html> <html lang="en"> <head> <title>v-if指令</title> <meta charset="utf-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> <div> <h1 v-if="yes">Yes</h1> <h1 v-if="no">No</h1> <h1 v-if="age > 25">Age: {{age}}</h1> </div> <script> var app = new Vue({ el: '#app', data: { yes: true,//值为真,插入元素 no: false,//值为假,不插入元素 age: 28 } }) </script> </body> </html>

运行截图:

Vue概念及常见命令介绍(1)

v-show指令

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjfpss.html