vue 全局實現數字千分位格式
這個是啥意思呢 ? 就是我們在頁面上需要渲染數據的時候,比如 88888
,我們需要按照千分位顯示成方便閱讀的格式88,888
。
這個時候我的做法是vue寫一個過濾器,將所有的數據都用這個過濾器過濾一下。
因為涉及的數據相對比較多,我就將這個過濾器掛載到了全局,這樣就不用再每個頁面引用了。
轉換代碼實現
首先創建一個文件 numberToCurrency.js ,實現數字千分位轉換功能。
export function numberToCurrencyNo(value) {
if (!value) return 0
// 獲取整數部分
const intPart = Math.trunc(value)
// 整數部分處理,增加,
const intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
// 預定義小數部分
let floatPart = ''
// 將數值截取為小數部分和整數部分
const valueArray = value.toString().split('.')
if (valueArray.length === 2) { // 有小數部分
floatPart = valueArray[1].toString() // 取得小數部分
return intPartFormat + '.' + floatPart
}
return intPartFormat + floatPart
}
好了,這樣就實現了,當然如果有其他的需求,具體的轉換代碼得根據實際來修改。
接下來就是引用。
引用掛載全局
在 main.js 文件中引入剛才的過濾器文件,並且掛載到全局。
import { numberToCurrencyNo } from '@/utils/numberToCurrency'
// 配置全局過濾器,實現數字千分位格式
Vue.filter('numberToCurrency', numberToCurrencyNo)
這樣子就可以了,然后在具體需要轉換的地方使用一下就OK了。
使用
使用的話就是普通過濾器的使用方法。
<p class="num color1">{{riskAll| numberToCurrency}}</p>
ok,結束。