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 相关文章推荐
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
Jan 06 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 jQuery
Vue中如何实现proxy代理
Apr 20 Javascript
浅析node.js的模块加载机制
May 25 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
Sep 25 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
教你使用vscode 搭建react-native开发环境
Jul 07 Javascript
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 Vue.js
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
Protoss热键控制
2020/03/14 星际争霸
openPNE常用方法分享
2011/11/29 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
js 替换
2008/02/19 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
python中MySQLdb模块用法实例
2014/11/10 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
详细介绍Python的鸭子类型
2016/09/12 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
pandas对指定列进行填充的方法
2018/04/11 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
Flask之请求钩子的实现
2018/12/23 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python的列表List求均值和中位数实例
2020/03/03 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
医学院学生的自我评价分享
2013/11/19 职场文书
财务管理个人自荐书范文
2013/11/24 职场文书
逃课上网检讨书
2014/02/20 职场文书
技校毕业生自荐信
2014/06/03 职场文书
元旦标语大全
2014/10/09 职场文书
应收账款管理制度
2015/08/06 职场文书
技术入股协议书
2016/03/22 职场文书
总结几个非常实用的Python库
2021/06/26 Python