vue.js-过滤器、指令、事件、语法糖

小练习

  • 需求: 在页面中实时显示当前时间
<body>
<div id = "dataApp">
    {{date}}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script>
    //需求:在页面中实时显示当前时间
    var app = new Vue({
        el: "#dataApp",
        data: {
          date: new Date()
        },
        mounted: function(){
          var _this = this; //this代表的就是vue实例
            //setInterval():定时器
            this.timer = setInterval(function(){
              _this.date = new Date();
            },1000)
        },
        //在vue 实例销毁之前,必须清楚定时器
        beforeDestroy:function(){
          //如果定时器存在,就清除定时器
            if(this.timer){
              clearInterval(this.timer)
            }
        }

    })
</script>
</body>

过滤器

  • Vue. 支持在{{}}插值的尾部添加一小管道符 “ | ” 对数据进行过滤,经常用于格
    式化文本,比如字母全部大写、货币千位使用逗号分隔等。过滤的规则是自定义
    的, 通过给 Vue 实例添加选项 filters 属性来设置

  • 过滤器的串联
    过滤器:{{ data | filter1 |filter2}}

  • 过滤器的参数
    {{date | formatDate(‘argue’,‘arg2’)}} 中的第一个和第二个参数,分别对应过滤器的第二个和第三个参数。例如:
    {{date | formatDate(66,99)}}和formatDate: function(value,a,b)中,a=66,b=99

  • 对date中的数据进行处理

<div id = "dataApp">
    {{date}}
    <br/>
    <!--过滤器,|后面紧跟过滤器的名字,-->
    {{date | formatDate}}
//过滤器
var plusDate = function(value){
      return value < 10 ? '0' + value : value //如果value < 10返回 0+value,大于10,返回value
    };
    var app = new Vue({
        el: "#dataApp",
        data: {
          date: new Date()
        },
        //定义过滤器,因为过滤器不只是一个,所以生成对象
        filters: {
          //value是默认属性,必须添加,va
            formatDate: function(value){
              //将字符串转化成date类型
                var date = new Date(value);
                var year = date.getFullYear(); //年
                var month = plusDate(date.getMonth() + 1);//月
                var day = plusDate(date.getDay()); //日
                var hours = plusDate(date.getHours()); //时
                var min = plusDate(date.getMinutes()); //分
                var sec = plusDate(date.getSeconds()) //秒
                //将整理好的数据返回
                return year + '--' + month + '--' + day + '--' + hours + '--' + min + '--' + sec;

          }
        },
.....

指令和事件

指令( Directives )是 Vue 模板中最常用的一项功能,它带有前缀 v-,能帮我们
快速完成DOM操作。循环渲染。显示和隐藏

  • v-­text:—————­解析文本 和{{ }} 作用一样,只会解析文本,把字符串直接渲染到页面上。
    在标签中以属性的形式引入v-text = 'apple',那么在data中定义的apple的内容就会渲染到页面上。
    {{apple}}<br/><span v-text = "apple"></span>作用一模一样
  • v-­html:————— 解析html
    <span v-html = "banana"></span>
  • v-­bind—————–v-­bind 的基本用途是动态更新 HTML 元素上的属性,比如 id 、
    class 等。v-bind只能绑定活的属性!
<div class = "{{className}}"></div> <!--拿不到值-->
<div v-bind:class = "className"></div> <!--可以拿得到值-->
  • v-­on——————它用来绑定事件监听器
    <button v-on:click = "count">{{countnum}}</button>
    v­on具体介绍
    在普通元素上, v­on 可以监听原生的 DOM 事件,除了 click 外,还有
    dblclick、 keyup, mousemove 等。表达式可以是一个方法名,这些方法都
    写在 Vue 实例的 methods 属性内,并且是函数的形式,函数内的 this 指向
    的是当前 Vue 实例本身,因此可以直接使用 this.xxx 的形式来访问或修改数
    据。

vue中用到的所有方法都定义在methods中,和data平级。

  • 指令具体的代码实现
<body>
    <div id = "app">
        获取message数据:{{message}}<br/>
        v-text:解析文本:<span v-text = "apple"></span><br/>
        v-text解析HTML,显示的HTML字符串而不是相应地元素渲染<br/>
        <div v-text = "banana"></div>
        v-html解析HTML:<div v-html = "banana"></div>
        v-bind绑定活的属性:<div v-bind:class = "className"></div>
        v-bind的语法糖:<div :class = "className"></div>
        v-on绑定事件:<button v-on:click = "count">{{countnum}}</button><br/>
        v-on绑定事件的语法糖:<button @click = "count">{{countnum}}</button>
    </div>
    <script>
    var app = new Vue({
        el: "#app",
        data: {
            message: 'hello!',
            apple: '这是一个苹果!',
            banana: '<span style = "color: red;">这是红色</span>',
            className: 'content',
            countnum: 0
        },
        methods: {
            count: function(){
                this.countnum = this.countnum + 1
            }
        }
    })
    
    
    </script>
</body>

语法糖

语法糖是指在不影响功能的情况下 , 添加某种简洁方法实现同样的效果 , 从而更加方便程序开发。

v-bind: 可以转换成 :
v-on: 可以转换成@
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 绿树点缀着群山,群山环绕着寺庙,我走在曲径通幽的小路上,听着鸟儿千转百回的啼唱,好奇是什么鸟儿能有如此动人的歌喉,...
    暴走的小橘子阅读 693评论 0 1
  • 花开花谢,已成定局。一个剧情里,扮演了不同角色。经历了才懂得换位思考。木已成舟,挺好的。 ...
    丁设阅读 177评论 0 0
  • 第1章 穿越 我叫叶玄是一个高中生不过在回家的路上不幸被飙车党撞死,不过也要感谢他们。 他们让我获得了穿越系统,一...
    极玄龙影阅读 148评论 1 2
  • 这里是一座空城 不吵不闹 独独地坐落在这里 这里是一个闹市 车水马龙 人来人往地很是熙攘 这里是一座空城 人已弃城...
    龙二二六阅读 517评论 6 9
  • 让我们放下负担,放下心中的烦恼,与天地自然来一次彻底的沟通吧,因为万物无言,在天地大道中找到一份惬意淡然。 晚饭后...
    止于丘隅阅读 219评论 0 2