Vue实例对象

  创建一个vue应用很简单,通过构造函数Vue就能创建一个Vue的根实例:

var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})

  变量app代表了这个Vue实例。el、data都属于实例的参数选项。

  el:el是必不可少的选项,用于指定一个页面中已存在的DOM元素来挂在Vue实例,它可以是HTMLElement,也可以是CSS选择器。

<div id="app"></div>

var app = new Vue({
el:document.getElementById('app') //或者"#app”
})

  挂载成功后,可以通过app.$el来访问该元素。Vue提供了很多常用的实例属性与方法,都以$开头。

数据渲染

  vue.js的核心是允许采用简洁的模板语法来声明式地将数据渲染进DOM。

<!-- html -->
<div id="app">
{{ message }}
</div>
//JS
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
Hello Vue!

  使用双大括号(Mustache语法)“{{}}”是最基本的文本插值方法,它会自动将我们双向绑定的数据实时显示出来。

  如果想输出HTML,而不是将数据解析之后的纯文本,就需要使用到v-html:

<!-- html -->
<div id="app">
<span v-html="link"></span>
</div>
//JS
var app = new Vue({
el: '#app',
data: {
link:'<a href="#">这是一个链接</a>'
}
})

  如果想直接显示{{}},使用v-pre即可跳过这个元素和它的子元素的编译过程

<span v-pre>{{这里的内容是不会被编译的}}</span>

  在{{}}中,除了支持简单的绑定值,还可以使用JavaScript表达式进行简单的运算,三元运算等。但是只支持单个表达式,不支持语句和流控制。表达式中也不支持用户自定义的全局变量,只能使用Vue白名单内的全局变量,例如Math和Date。

过滤器

  Vue.js支持在{{}}插值的尾部添加一个管道符"|"对数据进行过滤,一般用于格式化文本。过滤的规则是自定义的,通过Vue实例添加选项filters来设置。下面的过滤器作用是对时间的格式化

<!-- html -->
<div id="app">
{{ data | formatDate }}
</div>
<script>
//在月份、日期、小时等小于10时前面补0
var padDate = function(value){
return value < 10 ? '0' + value : value;
}; var app = new Vue({
el: '#app',
date: {
date: new Date()
},
filters: {
//这里的value就是需要过滤的数据
formatDate: function(value){
var date = new Date(value);
var year = date.getFullYear();
var month = padDate(date.getMonth() + 1);
var day = padDate(date.getDate());
var hours = padDate(date.getHours());
var minutes = padDate(date.getMinutes());
var seconds = padDate(date.getSeconds());
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
},
mounted: funtion() {
//声明一个变量指向Vue实例this,保证作用域一致
var _this = this;
this.timer = setInterval(function() {
_this.date = new Date(); //给date重新赋值
},1000);
},
beforeDestroy: function() {
if(this.timer){
clearInterval(this.timer); //在Vue实例销毁前,清除定时器
}
}
})
</script>

  过滤器也可以串联,也可以接收参数。

{{ message | filterA('arg1','arg2') | filterB('arg1','arg2')}}

  参数会传递给过滤器的第二个和第三个参数,第一个参数是数据本身。

Vue 2.0学习(二)数据绑定的更多相关文章

  1. Vue学习笔记-Vue.js-2.X 学习(二)===>组件化开发

    ===重点重点开始 ========================== (三) 组件化开发 1.创建组件构造器: Vue.extends() 2.注册组件: Vue.component() 3.使用 ...

  2. Vue源码学习二 ———— Vue原型对象包装

    Vue原型对象的包装 在Vue官网直接通过 script 标签导入的 Vue包是 umd模块的形式.在使用前都通过 new Vue({}).记录一下 Vue构造函数的包装. 在 src/core/in ...

  3. Vue 2.0 学习路线

    「 Vue很难学吗 」 对于我这种从0.x版本就开始体验 vuejs 的人来说,当然不算难,那时候没各种脚手架和复杂搭配,仅仅是一个mvvm的解决方案库而已,解决了jq带来的繁琐操作dom痛点,所以就 ...

  4. Vue 2.0学习(一)简介

    简介 Vue是一套用于构建用户界面的渐进式框架.简单小巧( 压缩后仅17KB),Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手,还便于与第三方库或既 ...

  5. vue 源码学习二 实例初始化和挂载过程

    vue 入口 从vue的构建过程可以知道,web环境下,入口文件在 src/platforms/web/entry-runtime-with-compiler.js(以Runtime + Compil ...

  6. Vue源码学习(二)$mount() 后的做的事(1)

    Vue实例初始化完成后,启动加载($mount)模块数据. (一)Vue$3.protype.$mount             标红的函数 compileToFunctions 过于复杂,主要是生 ...

  7. Vue 2.0学习(七)方法与事件

    基本用法 以监听一个按钮的点击事件为例,设计一个计数器,每次点击都加1: <div id = "app"> 点击次数:{{ counter }} <button ...

  8. Vue 2.0学习(四)计算属性

    {{}}模板内的表达式常用于简单的运算,当运算过长或逻辑复杂时,会难以维护. <div> {{ text.split(',').reverse().join('') }} </div ...

  9. Vue 2.0学习(六)内置指令

    基本指令 1.v-cloak v-cloak不需要表达式,它会在Vue实例结束编译时从绑定的HTML元素上移除,经常和CSS的display:none配合使用. <div id="ap ...

随机推荐

  1. TabLayout 使用方法 (基础)

    此为布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:a ...

  2. GridControl详解(五)设置行备注和行号

    备注显示设置 设置备注字段 显示结果: 可以写入按键事件F3,用以开关备注显示 private void Form4_KeyUp(object sender, KeyEventArgs e) { if ...

  3. JSON 为王,为什么 XML 会慢慢淡出人们的视野?

    目前全球信息基础设施的特点是,拥有大量的数据交换格式.这一点也不奇怪.互联网几乎已经老了,而“物联网”及“大数据”正从概念走进现实.但我仍然相信,在这一领域还有一股较强的历史趋势,推动 JSON 数据 ...

  4. 【CodeForces】915 D. Almost Acyclic Graph 拓扑排序找环

    [题目]D. Almost Acyclic Graph [题意]给定n个点的有向图(无重边),问能否删除一条边使得全图无环.n<=500,m<=10^5. [算法]拓扑排序 [题解]找到一 ...

  5. iOS数据存取---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog iOS数据存取---iOS-Apple苹果官方文档翻译 数据存取/*技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http:// ...

  6. ActiveMQ笔记之点对点队列(Point-to-Point)

    1. 点对点通信 点对点是一种一对一通信方式,更像是有一个队列,一个人往队列里放消息,另一个人从队列中取消息,其最大的特点是一个消息只会被消费一次,即使有多个消费者同时消费,他们消费的也是不同的消息. ...

  7. Batch Gradient Descent vs. Stochastic Gradient Descent

    梯度下降法(Gradient Descent)是用于最小化代价函数的方法. When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0 ...

  8. eclipse加速/Nginx配置跨域代理

    下班时间到啦! --下班都是他们的,而我,还是什么都没有. eclipse加速 去掉包含js文件的包的js验证,否则每次启动都需要进行校验(右击项目->properties) Nginx配置跨域 ...

  9. c语言学习笔记.预处理.#ifndef

    #ifndef -> if not define 配合 #endif使用 在h头文件中使用,防止重复包含和编译. 也可以用条件编译来实现. 例如: 编写头文件 test.h 在头文件开头写上两行 ...

  10. Python作业选课系统(第六周)

    作业需求: 角色:学校.学员.课程.讲师.完成下面的要求 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 ...