# Intl.NumberFormat
# Parameters
import { useIntlNumberFormat } from "vue-composable"; useIntlNumberFormat(locales?,options?);
Parameters | Type | Required | Default | Description |
---|---|---|---|---|
locales | Ref<string | string[]> | false | undefined | Default locale passed to Intl.NumberFormat (opens new window) |
options | Ref<Intl.NumberFormatOptions> | false | undefined | Default options passed to Intl.NumberFormat (opens new window) |
# State
The useIntlNumberFormat
function exposes the following reactive state:
import { useIntlNumberFormat } from "vue-composable"; const { formatter } = useIntlNumberFormat();
State | Type | Description |
---|---|---|
formatter | Ref<Intl.NumberFormat> | Current formatter used |
# Methods
The useIntlNumberFormat
function exposes the following methods:
import { useIntlNumberFormat } from "vue-composable"; const { format, formatString } = useIntlNumberFormat();
Signature | Description |
---|---|
format | returns reactive ref<string> , if value is ref<number> it will update automatically |
formatString | returns formatted string |
# Example
value: $400.00
formatted: $400.00
# Code
<template> <div> <ul> <li> <label for="value">value</label> <input name="value" v-model.number="value" type="number" /> </li> <li> <label for="locale">Locale</label> <select name="locale" v-model="selectedLocale"> <option v-for="l in locales" :value="l">{{ l }}</option> </select> </li> <li> <label for="style">options.style</label> <select name="style" v-model="options.style"> <option value="decimal">decimal</option> <option value="percent">percent</option> <option value="currency">currency</option> </select> </li> <template v-if="options.style === 'currency'"> <li> <label for="currency">options.currency</label> <input name="currency" v-model="options.currency" /> </li> <li> <label for="currencyDisplay">options.currencyDisplay</label> <select name="currencyDisplay" v-model="options.currencyDisplay"> <option value="symbol">symbol</option> <option value="code">code</option> </select> </li> </template> </ul> <p> value: <b>{{ formatString(value) }}</b> </p> <p> formatted: <b>{{ formattedValue }}</b> </p> </div> </template> <script> import { defineComponent, ref } from "@vue/composition-api"; import { useIntlNumberFormat, useLanguage } from "vue-composable"; export default defineComponent({ name: "intl-number-format-example", setup() { const { languages, language } = useLanguage(); const locales = languages.value.concat(...["pt-PT", "pt-BR"]); const selectedLocale = ref(language.value || "en"); const options = ref({ style: "currency", currency: "USD", currencyDisplay: "symbol" }); const { formatString, format } = useIntlNumberFormat( selectedLocale, options ); const value = ref(400); const formattedValue = format(value); return { locales, selectedLocale, formatString, options, value, formattedValue }; } }); </script>