vue 定义返回result_(四)vue过滤器及数据监听

f1b9186b8935d6dcdaff0ae18eed037d.png

1、过滤器filter

filter有全局和组件内

全局定义Vue.filter('discount',过滤器方法)用于显示折扣价

组件内定义 filters:{ showprice,过滤器方法 }用于显示将万元转化为元

使用 {{ price | 过滤器方法 }},对price参数进行加工处理后返回输出

<div id="app">
     <div>
            单向绑定:<input type="text" :value='price'/>万元<br/>
            双向绑定:<input type="text" v-model='price'/>万元<br/>
            价格:{{ price }}万元<br/>
            价格:{{ price | showprice }}元<br/>
            85折后价:{{ price | discount }}元<br/>
     </div>
 </div>
 
 <script>    
     new Vue({
         el:'#app',
         data:{
             price:'123'
         },
         watch:{
}
     })
 </script>

2、监听watch和computed

使用watch监听price对象,深度监听必须使用handler方法和deep:true,handler参数newval和oldval,可以取到新数据和旧数据。

computed用于监听result方法内每一个计算数据的变化,变化后返回最新值

<div id="app">
     <div>
            价格:<input type="text" v-model='price'/>元<br/>
            折扣:<input type="text" v-model='discount'/>%<br/>
            折后价:{{ result }}元<br/>
     </div>
 </div>
 
 <script>  
     new Vue({
         el:'#app',
          data:{
              price:'6000',
              discount:'85'
          },
          watch:{
                price:{
                    handler(newval){
                         if(newval>10000){
                             alert('价格为'+newval+'元,高于10000元!打五折') 
                             this.discount='50'
                        }                       
                    },
                deep:true
                } 
           },
           computed:{
               result(){
                   return this.price*this.discount/100
                }
            }
        })
 </script>

运行显示:

b3e1deb578ee18b6d109179befc7f026.png

示例中watch监听价格,跳出弹窗显示超过10000的产品打5折,并修改discount

8de250536dc31f8b254566ffc2f07dfa.png

7655f7e194b82e521c56db93d6dba3bf.png

computed监听折后价,修改price和discount中任何一个值,折后价会自动调整。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值