# AddressEdit ### Intro Used to create, update, and delete receiving addresses. ### Install Register component globally via `app.use`, refer to [Component Registration](#/en-US/advanced-usage#zu-jian-zhu-ce) for more registration ways. ```js import { createApp } from 'vue'; import { AddressEdit } from 'vant'; const app = createApp(); app.use(AddressEdit); ``` ## Usage ### Basic Usage ```html ``` ```js import { ref } from 'vue'; import { Toast } from 'vant'; export default { setup() { const searchResult = ref([]); const onSave = () => Toast('save'); const onDelete = () => Toast('delete'); const onChangeDetail = (val) => { if (val) { searchResult.value = [ { name: 'Name1', address: 'Address', }, ]; } else { searchResult.value = []; } }; return { onSave, onDelete, areaList, searchResult, onChangeDetail, }; }, }; ``` ## API ### Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | area-list | Area List | _object_ | - | | area-columns-placeholder | placeholder of area columns | _string[]_ | `[]` | | area-placeholder | placeholder of area input field | _string_ | `Area` | | address-info | Address Info | _AddressEditInfo_ | `{}` | | search-result | Address search result | _AddressEditSearchItem[]_ | `[]` | | show-postal | Whether to show postal field | _boolean_ | `false` | | show-delete | Whether to show delete button | _boolean_ | `false` | | show-set-default | Whether to show default address switch | _boolean_ | `false` | | show-search-result | Whether to show address search result | _boolean_ | `false` | | show-area | Whether to show area cell | _boolean_ | `true` | | show-detail | Whether to show detail field | _boolean_ | `true` | | disable-area | Whether to disable area select | _boolean_ | `false` | | save-button-text | Save button text | _string_ | `Save` | | delete-button-text | Delete button text | _string_ | `Delete` | | detail-rows | Detail input rows | _number \| string_ | `1` | | detail-maxlength | Detail maxlength | _number \| string_ | `200` | | is-saving | Whether to show save button loading status | _boolean_ | `false` | | is-deleting | Whether to show delete button loading status | _boolean_ | `false` | | tel-validator | The method to validate tel | _(tel: string) => boolean_ | - | | tel-maxlength | Tel maxlength | _number \| string_ | - | | postal-validator | The method to validate postal | _(tel: string) => boolean_ | - | | validator | Custom validator | _(key, val) => string_ | - | ### Events | Event | Description | Arguments | | --- | --- | --- | | save | Emitted when the save button is clicked | content:form content | | focus | Emitted when field is focused | key: field name | | delete | Emitted when confirming delete | content:form content | | cancel-delete | Emitted when canceling delete | content:form content | | select-search | Emitted when a search result is selected | value: search content | | click-area | Emitted when the area field is clicked | - | | change-area | Emitted when area changed | values: area values | | change-detail | Emitted when address detail changed | value: address detail | | change-default | Emitted when switching default address | value: checked | ### Slots | Name | Description | | ------- | --------------------------- | | default | Custom content below postal | ### Methods Use [ref](https://v3.vuejs.org/guide/component-template-refs.html) to get AddressEdit instance and call instance methods. | Name | Description | Attribute | Return value | | --- | --- | --- | --- | | setAddressDetail | Set address detail | _addressDetail: string_ | - | ### Types The component exports the following type definitions: ```ts import type { AddressEditInfo, AddressEditInstance, AddressEditSearchItem, } from 'vant'; ``` `AddressEditInstance` is the type of component instance: ```ts import { ref } from 'vue'; import type { AddressEditInstance } from 'vant'; const addressEditRef = ref(); addressEditRef.value?.setAddressDetail(''); ``` ### AddressEditInfo Data Structure | key | Description | Type | | ------------- | ------------------ | --------- | | name | Name | _string_ | | tel | Phone | _string_ | | province | Province | _string_ | | city | City | _string_ | | county | County | _string_ | | addressDetail | Detailed Address | _string_ | | areaCode | Area code | _string_ | | postalCode | Postal code | _string_ | | isDefault | Is default address | _boolean_ | ### AddressEditSearchItem Data Structure | key | Description | Type | | ------- | ----------- | -------- | | name | Name | _string_ | | address | Address | _string_ | ### Area Data Structure Please refer to [Area](#/en-US/area) component. ## Theming ### CSS Variables The component provides the following CSS variables, which can be used to customize styles. Please refer to [ConfigProvider component](#/en-US/config-provider). | Name | Default Value | Description | | --- | --- | --- | | --van-address-edit-padding | _var(--van-padding-sm)_ | - | | --van-address-edit-buttons-padding | _var(--van-padding-xl) var(--van-padding-base)_ | - | | --van-address-edit-button-margin-bottom | _var(--van-padding-sm)_ | - | | --van-address-edit-button-font-size | _var(--van-font-size-lg)_ | - |