Vue实例对象

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

  1. var app = new Vue({
  2. el: '#app',
  3. data: {
  4. message: 'Hello Vue.js!'
  5. }
  6. })

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

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

  1. <div id="app"></div>
  2.  
  3. var app = new Vue({
  4. el:document.getElementById('app') //或者"#app”
  5. })

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

数据渲染

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

  1. <!-- html -->
  2. <div id="app">
  3. {{ message }}
  4. </div>
  1. //JS
  2. var app = new Vue({
  3. el: '#app',
  4. data: {
  5. message: 'Hello Vue!'
  6. }
  7. })
  1. Hello Vue!

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

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

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

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

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

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

过滤器

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

  1. <!-- html -->
  2. <div id="app">
  3. {{ data | formatDate }}
  4. </div>
  1. <script>
  2. //在月份、日期、小时等小于10时前面补0
  3. var padDate = function(value){
  4. return value < 10 ? '0' + value : value;
  5. };
  6.  
  7. var app = new Vue({
  8. el: '#app',
  9. date: {
  10. date: new Date()
  11. },
  12. filters: {
  13. //这里的value就是需要过滤的数据
  14. formatDate: function(value){
  15. var date = new Date(value);
  16. var year = date.getFullYear();
  17. var month = padDate(date.getMonth() + 1);
  18. var day = padDate(date.getDate());
  19. var hours = padDate(date.getHours());
  20. var minutes = padDate(date.getMinutes());
  21. var seconds = padDate(date.getSeconds());
  22. return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
  23. }
  24. },
  25. mounted: funtion() {
  26. //声明一个变量指向Vue实例this,保证作用域一致
  27. var _this = this;
  28. this.timer = setInterval(function() {
  29. _this.date = new Date(); //给date重新赋值
  30. },1000);
  31. },
  32. beforeDestroy: function() {
  33. if(this.timer){
  34. clearInterval(this.timer); //在Vue实例销毁前,清除定时器
  35. }
  36. }
  37. })
  38. </script>

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

  1. {{ 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. Integer Numbers

    ZOJ Problem Set - 3365 Integer Numbers Time Limit: 1 Second      Memory Limit: 32768 KB      Special ...

  2. GridControl GridView 修改表格中的标题居中

    Grid Designer>Views>Appearance>HeaderPanel>TextOptions>HAIignment{Center} 依次打开并找到HAIL ...

  3. 新手应知道的ASP.NET代码编写规范

    1.局部变量的名称要有意义,尽量用对应的英文命名,比如“用户姓名”变量,不要用aa bb cc等来命名,而要使用userName. 2.不要使用单个字母的变量,如i.n.x等.而要使用index.te ...

  4. 【BZOJ】1778: [Usaco2010 Hol]Dotp 驱逐猪猡

    [题意]给定无向图,炸弹开始在1,在每个点爆炸概率Q=p/q,不爆炸则等概率往邻点走,求在每个点爆炸的概率.n<=300. [算法]概率+高斯消元 [题解]很直接的会考虑假设每个点爆炸的概率,无 ...

  5. MQTT协议及推送服务

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建 ...

  6. [POJ3370]&[HDU1808]Halloween treats 题解(鸽巢原理)

    [POJ3370]&[HDU1808]Halloween treats Description -Every year there is the same problem at Hallowe ...

  7. Redis 启动警告解决【转】

    [root@centos224]# service redisd start :M Nov :: (it was originally set to ). _._ _.-``__ ''-._ _.-` ...

  8. 94.Binary Tree Inorder Traversal---二叉树中序非递归遍历

    题目链接 题目大意:中序遍历二叉树.先序见144,后序见145. 法一:DFS,没啥说的,就是模板DFS.代码如下(耗时1ms): public List<Integer> inorder ...

  9. 剑指offer算法题

    数组中只出现一次的数字(一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字): 解法在于位运算中的异或,直接异或可以得到这两个数的异或,按照最后的有效数字位可以 ...

  10. php 面试指南

    https://xianyunyh.gitbooks.io/php-interview/