Vue的数据绑定、过滤器

6 篇文章 0 订阅

目录

一、数据绑定 

        1、文本插值,使用双大括号{{}}

        2、插入html

         3、v-bind属性样式绑定,

         4、表达式

二、过滤器

        1、全局过滤器

         2、应用filters选项定义本地过滤器


 

一、数据绑定 

        1、文本插值,使用双大括号{{}}

<div id="element">{{text}}</div>
<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo = new Vue({
        el: '#element',
        data: {
            text: 'Hello world'
        }
    })
</script>

        2、插入html

双大括号会把里面的值当做普通文本来处理,如果想要输出真正的html内容,需要使用v-html指令

<div id="element">
    <div v-html="text"></div>
</div>
<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo = new Vue({
        el: '#element',
        data: {
            text: '<h1>Hello world<h1/>'
        }
    })
</script>

         3、v-bind属性样式绑定,

双大括号不能应用在html属性中,如果要为html元素绑定属性,需要使用 v-bind指令进行属性绑定,v-bind常见的有:v-bind:href、v-bind:class、v-bind:src、v-bind:is等、可简化为 :href 、:class 的形式

<style>
    h1{
        color: red;
    }
</style>

<div id="element">
    <div v-html="text" v-bind:class="textStyle"></div>
</div>

<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo = new Vue({
        el: '#element',
        data: {
            text: '<h1>Hello world<h1/>',
            style: 'h1'    
        }
    })
</script>

         4、表达式

在双大括号括号标签中进行数据绑定,标签中可以是一个javascript的表达式,这个表达式可以是常量、变量、运算符组成的句子,仅可以是表达式,不能是一个语句。


<div id="element">
    {{ text=='Hello world' ? 'yes' : 'no' }}
</div>

<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo = new Vue({
        el: '#element',
        data: {
            text: 'Hello world'   
        }
    })
</script>

二、过滤器

        需要一些复杂计算的数据绑定,简单的表达式可能无法实现,这时候需要使用过滤器 。

        1、全局过滤器

Vue.js提供了全局方法Vue.filter()定义过滤器,格式如下:Vue.filter( 'ID',function() {} ) ,第一个参数为过滤器绑定的id,第二个为具体函数

<div id="element">
    {{ text | newText  }}
</div>

<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">

    Vue.filter('newText',function(text){
        text='New '+text;
        return text;
    }
    )

    var demo = new Vue({
        el: '#element',
        data: {
            text: 'Hello world'   
        }
    })
</script>

         2、应用filters选项定义本地过滤器

如下,串联使用过本地滤器,先调用firstText方法,在text字符串添加‘first’,再调用secondText方法,text字符串再添加字符‘second’

<div id="element">
    {{ text | firstText | secondText  }}
</div>

<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">

    Vue.filter('newText',function(text){
        text='New '+text;
        return text;
    }
    )

    var demo = new Vue({
        el: '#element',
        data: {
            text: 'Hello world'   
        },
        filters:{
            firstText:function(text){
                return 'first '+text;
            },
            secondText:function(text){
                return 'second '+text;
            }
        }
    })
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值