Vue 2.0学习(二)数据绑定
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学习(二)数据绑定的更多相关文章
- Vue学习笔记-Vue.js-2.X 学习(二)===>组件化开发
===重点重点开始 ========================== (三) 组件化开发 1.创建组件构造器: Vue.extends() 2.注册组件: Vue.component() 3.使用 ...
- Vue源码学习二 ———— Vue原型对象包装
Vue原型对象的包装 在Vue官网直接通过 script 标签导入的 Vue包是 umd模块的形式.在使用前都通过 new Vue({}).记录一下 Vue构造函数的包装. 在 src/core/in ...
- Vue 2.0 学习路线
「 Vue很难学吗 」 对于我这种从0.x版本就开始体验 vuejs 的人来说,当然不算难,那时候没各种脚手架和复杂搭配,仅仅是一个mvvm的解决方案库而已,解决了jq带来的繁琐操作dom痛点,所以就 ...
- Vue 2.0学习(一)简介
简介 Vue是一套用于构建用户界面的渐进式框架.简单小巧( 压缩后仅17KB),Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手,还便于与第三方库或既 ...
- vue 源码学习二 实例初始化和挂载过程
vue 入口 从vue的构建过程可以知道,web环境下,入口文件在 src/platforms/web/entry-runtime-with-compiler.js(以Runtime + Compil ...
- Vue源码学习(二)$mount() 后的做的事(1)
Vue实例初始化完成后,启动加载($mount)模块数据. (一)Vue$3.protype.$mount 标红的函数 compileToFunctions 过于复杂,主要是生 ...
- Vue 2.0学习(七)方法与事件
基本用法 以监听一个按钮的点击事件为例,设计一个计数器,每次点击都加1: <div id = "app"> 点击次数:{{ counter }} <button ...
- Vue 2.0学习(四)计算属性
{{}}模板内的表达式常用于简单的运算,当运算过长或逻辑复杂时,会难以维护. <div> {{ text.split(',').reverse().join('') }} </div ...
- Vue 2.0学习(六)内置指令
基本指令 1.v-cloak v-cloak不需要表达式,它会在Vue实例结束编译时从绑定的HTML元素上移除,经常和CSS的display:none配合使用. <div id="ap ...
随机推荐
- Integer Numbers
ZOJ Problem Set - 3365 Integer Numbers Time Limit: 1 Second Memory Limit: 32768 KB Special ...
- GridControl GridView 修改表格中的标题居中
Grid Designer>Views>Appearance>HeaderPanel>TextOptions>HAIignment{Center} 依次打开并找到HAIL ...
- 新手应知道的ASP.NET代码编写规范
1.局部变量的名称要有意义,尽量用对应的英文命名,比如“用户姓名”变量,不要用aa bb cc等来命名,而要使用userName. 2.不要使用单个字母的变量,如i.n.x等.而要使用index.te ...
- 【BZOJ】1778: [Usaco2010 Hol]Dotp 驱逐猪猡
[题意]给定无向图,炸弹开始在1,在每个点爆炸概率Q=p/q,不爆炸则等概率往邻点走,求在每个点爆炸的概率.n<=300. [算法]概率+高斯消元 [题解]很直接的会考虑假设每个点爆炸的概率,无 ...
- MQTT协议及推送服务
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建 ...
- [POJ3370]&[HDU1808]Halloween treats 题解(鸽巢原理)
[POJ3370]&[HDU1808]Halloween treats Description -Every year there is the same problem at Hallowe ...
- Redis 启动警告解决【转】
[root@centos224]# service redisd start :M Nov :: (it was originally set to ). _._ _.-``__ ''-._ _.-` ...
- 94.Binary Tree Inorder Traversal---二叉树中序非递归遍历
题目链接 题目大意:中序遍历二叉树.先序见144,后序见145. 法一:DFS,没啥说的,就是模板DFS.代码如下(耗时1ms): public List<Integer> inorder ...
- 剑指offer算法题
数组中只出现一次的数字(一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字): 解法在于位运算中的异或,直接异或可以得到这两个数的异或,按照最后的有效数字位可以 ...
- php 面试指南
https://xianyunyh.gitbooks.io/php-interview/