vue货币过滤器的实现方法


Posted in Javascript onApril 01, 2017

自定义事件也可以用来创建自定义的表单输入组件,使用 v-model 来进行数据双向绑定。

所以要让组件的 v-model 生效,它必须:

  • 接受一个 value 属性
  • 在有新的 value 时触发 input 事件

代码如下:

HTML:

<div id="app">
 <p>{{ message }}</p>
 
 <currency-input label="Price" v-model="price"></currency-input>
 <currency-input label="Shipping" v-model="shipping"></currency-input>
 <currency-input label="Handling" v-model="handling"></currency-input>
 <currency-input label="Discount" v-model="discount"></currency-input>
 <p>Total: ${{ total }}</p>
</div>

JavaScript:

Vue.component('currency-input', {
 template: `\
 <div>\
  <label v-if="label">{{ label }}</label>\
   $\
   <input\
   ref="input"\
    v-bind:value="value"\
    v-on:input="updateValue($event.target.value)"\
    v-on:focus="selectAll"\
    v-on:blur="formatValue"\
    >\
   </div>\
 `,
 props: {
 value: {
  type: Number,
   default: 0
  },
  label: {
  type: String,
   default: ''
  }
 },
 mounted: function () {
 this.formatValue()
 },
 methods: {
  updateValue: function (value) {
  var result = currencyValidator.parse(value, this.value)
   if (result.warning) {
   this.$refs.input.value = result.value
   }
   this.$emit('input', result.value)
  },
  formatValue: function () {
  this.$refs.input.value = currencyValidator.format(this.value)
  },
  selectAll: function (event) {
  setTimeout(function () {
   event.target.select()
   }, 0)
  }
 }
})
new Vue({
 el: '#app',
 data: {
  message: 'Hello Vue.js!',
  price: 0,
  shipping: 0,
  handling: 0,
  discount: 0
 },
 computed: {
 total: function () {
  return ((
   this.price * 100 +
    this.shipping * 100 +
    this.handling * 100 -
    this.discount * 10
   ) / 100).toFixed(2)
  }
 }
})

效果图如下:

vue货币过滤器的实现方法

每个 Vue 实例都实现了事件接口(Events interface),即:

使用 $on(eventName) 监听事件
使用 $emit(eventName) 触发事件

v-model实现双向传递。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
jquery foreach使用示例
Sep 12 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
浅析Ajax语法
Dec 05 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
微信小程序实现签到弹窗动画
Sep 21 Javascript
TypeScript 使用 Tuple Union 声明函数重载
Apr 07 Javascript
javascript 中的try catch应用总结
Apr 01 #Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 #Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 #Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 #Javascript
ES6新特性之函数的扩展实例详解
Apr 01 #Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 #Javascript
ES6新特性之模块Module用法详解
Apr 01 #Javascript
You might like
什么是短波收听SWL
2021/03/01 无线电
php配合jquery实现增删操作具体实例
2013/12/12 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
Js组件的一些写法
2010/09/10 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
岗位职责的含义
2013/11/17 职场文书
数控专业自荐书范文
2014/03/16 职场文书
幼儿园新年寄语
2014/04/03 职场文书
python 如何用terminal输入参数
2021/05/25 Python
python小型的音频操作库mp3Play
2022/04/24 Python