vant/src/contact-list
neverland bd609e1df0
perf: add truthProp util (#8522)
* perf: add TruthyProp util

* chore: rename

* chore: upd
2021-04-14 10:26:21 +08:00
..
2021-03-09 15:39:26 +08:00
2021-03-08 17:14:55 +08:00
2021-04-08 09:57:55 +08:00
2021-03-17 16:14:18 +08:00

ContactList

Intro

Used to display the contact list.

Install

Register component globally via app.use, refer to Component Registration for more registration ways.

import { createApp } from 'vue';
import { ContactList } from 'vant';

const app = createApp();
app.use(ContactList);

Usage

Basic Usage

<van-contact-list
  v-model="chosenContactId"
  :list="list"
  default-tag-text="default"
  @add="onAdd"
  @edit="onEdit"
  @select="onSelect"
/>
import { reactive } from 'vue';
import { Toast } from 'vant';

export default {
  setup() {
    const state = reactive({
      chosenContactId: '1',
      list: [
        {
          id: '1',
          name: 'John Snow',
          tel: '13000000000',
          isDefault: true,
        },
        {
          id: '2',
          name: 'Ned Stark',
          tel: '1310000000',
        },
      ],
    });

    const onAdd = () => Toast('Add');
    const onEdit = (contact) => Toast('Edit' + contact.id);
    const onSelect = (contact) => Toast('Select' + contact.id);

    return {
      state,
      onAdd,
      onEdit,
      onSelect,
    };
  },
};

API

Props

Attribute Description Type Default
v-model Id of chosen contact number | string -
list Contact list Contact[] []
add-text Add button text string Add new contact
default-tag-text Default tag text string -

Events

Event Description Arguments
add Emitted when the add button is clicked -
edit Emitted when the edit button is clicked contact: Contactindex: number
select Emitted when a contact is selected contact: Contact, index: number

Data Structure of Contact

key Description Type
id ID number | string
name Name string
tel Phone string
isDefault Is default contact boolean

Less Variables

How to use: Custom Theme.

Name Default Value Description
@contact-list-edit-icon-size 16px -
@contact-list-add-button-z-index 999 -
@contact-list-item-padding @padding-md -
@contact-list-item-radio-icon-color @red -