Историческая сводка:
- Практика оптимизации производительности программы WeChat Mini
- Реализуйте «Dingding» через апплет WeChat
- Помните субподряд проекта апплета WeChat и субподряд предварительной загрузки
- Апплет WeChat на практике
задний план
Эта проблема, разработанная в ответ на требования к врезке из предыдущей проблемы, должна отображать врезные записи в виде списка, но апплет WeChat не имеет табличного компонента, что может быть официальным соображением. front-end разработка, таблица всегда была одним из самых сложных компонентов и не была реализована. Нет готовых компонентов для использования, и в настоящее время есть два решения этой проблемы:
- 1) Встроенная страница h5, (ведь все h5
table组件
многочисленные) - 2) настроить
table组件
(изготовить колеса)
Первоначально была разработана первая фаза врезки, и начальник ожидает, что вторую фазу также можно будет использовать изначально, что удобно для последующего обслуживания. Итак, я начал делать колеса. Компонент таблицы должен выполнять следующие функции:
- В основном используется для отображения структурированных данных;
- Поддержка пользовательских операций;
- Поддержка пользовательских стилей заголовков;
- Поддержка фиксированного заголовка, прокрутка влево и вправо и другие функции.
отображение эффекта табличного компонента
miniprogram-table-component
Компонент пользовательской таблицы мини-программы
Чтобы использовать этот компонент, вам необходимо полагаться на версию 2.2.2 базовой библиотеки Mini Program и сборку инструментов разработчика npm. Для получения подробной информации см.Официальная документация по npm.
1. Базовая форма
2. Форма с узором «зебра»
3. Таблицы с разнесенными границами
4. Настройте быструю копию без данных
5. Настройте стиль заголовка таблицы
6. Фиксированный заголовок
7. Горизонтальное скольжение стола
8. Настройте стили строк и ячеек таблицы
Начать быстро
Простой апплет WeChattable组件
Родился. Это свежо и тепло.После прочтения эффекта дисплея раньше, я представлю использование.
Компонент пользовательской таблицы очень прост в использовании, то есть он используется по методу пакета npm и пользовательского компонента WeChat.
1. Установка и введение
- Установить компоненты:
npm install --save miniprogram-table-component
- Внедрение пользовательского компонента таблицы
Добавьте конфигурацию пользовательских компонентов recycle-view и recycle-item в файл конфигурации json страницы.
{
"usingComponents": {
"table-view": "../../../miniprogram_npm/miniprogram-table-component"
}
}
Примечание. Путь к пакету npm. Если вы столкнулись с проблемой, что пакет не может быть найден здесь, вы можете проверить следующее
微信小程序 npm 找到不到npm包的坑?
2. Используйте табличный компонент
Он используется там, где необходимо использовать страницу wxml, следующим образом:
<table-view
headers="{{tableHeader}}"
data="{{ row }}"
stripe="{{ stripe }}"
border="{{ border }}"
/>
Используйте его там, где необходимо использовать страницу js, следующим образом:
Page({
/**
* 页面的初始数据
*/
data: {
tableHeader: [
{
prop: 'datetime',
width: 150,
label: '日期',
color: '#55C355'
},
{
prop: 'sign_in',
width: 152,
label: '上班时间'
},
{
prop: 'sign_out',
width: 152,
label: '下班时间'
},
{
prop: 'work_hour',
width: 110,
label: '工时'
},
{
prop: 'statusText',
width: 110,
label: '状态'
}
],
stripe: true,
border: true,
outBorder: true,
row: [
{
"id": 1,
"status": '正常',
"datetime": "04-01",
"sign_in_time": '09:30:00',
"sign_out_time": '18:30:00',
"work_hour": 8,
}, {
"id": 2,
"status": '迟到',
"datetime": "04-02",
"sign_in_time": '10:30:00',
"sign_out_time": '18:30:00',
"work_hour": 7,
}, {
"id": 29,
"status": '正常',
"datetime": "04-03",
"sign_in_time": '09:30:00',
"sign_out_time": '18:30:00',
"work_hour": 8,
}, {
"id": 318,
"status": '休息日',
"datetime": "04-04",
"sign_in_time": '',
"sign_out_time": '',
"work_hour": '',
}, {
"id": 319,
"status": '正常',
"datetime": "04-05",
"sign_in_time": '09:30:00',
"sign_out_time": '18:30:00',
"work_hour": 8,
}
],
msg: '暂无数据'
},
/**
* 点击表格一行
*/
onRowClick: function(e) {
console.log('e: ', e)
}
})
3. Конфигурация
Часть конфигурации в основном настраивает несколько свойств, а именно:
элемент конфигурации | иллюстрировать | Типы | необязательное значение | По умолчанию | Необходимый |
---|---|---|---|---|---|
headers | Заголовок таблицы, ширина столбца, атрибуты столбца | Array | {prop: 'datetime', width: 150, label: '日期'} |
[] | yes |
data | данные списка таблиц | Array | [] | no | |
stripe | Будь то рисунок зебры | boolean | true/false | false | no |
border | Есть ли распорка | boolean | true/false | false | no |
height | Когда вертикального контента слишком много, вы можете установить заголовок фиксированной высоты. | string | auto | no | |
msg | Исправлена ситуация отсутствия данных, отображение копии | string | 暂无数据~ |
no | |
header-row-class-name | собственный стиль заголовка таблицы | string | no | ||
row-class-name | Настройка стилей строк таблицы | string | no | ||
cell-class-name | пользовательский стиль ячейки | string | no | ||
bind:rowHandle | Это событие запускается при нажатии на строку | function | no |
Код, связанный с конфигурацией 🌰:
<table-view
header-row-class-name="header-class"
row-class-name="row-class"
cell-class-name="cell-class"
headers="{{tableHeader}}"
data="{{ row }}"
stripe="{{ stripe }}"
height="{{ height }}"
border="{{ border }}"
bind:rowClick="onRowClick"
bind:cellClick="onCellClick"
no-data-msg="{{ msg }}"
/>
header-row-class-name
,row-class-name
,cell-class-name
Он поддерживает внешние стили через externalClasses и управляет стилем таблицы в родительском компоненте,externalClasses классы внешнего стиля, официальное описание. Пример исходного кода черезгитхаб-адресПроверить.
Реализация ямы, с которой сталкивается компонент пользовательской формы
Проблемы, из-за которых npm не может войти и не может опубликовать?
Пакет npm тоже был выпущен раньше, но я забылnpm login
Если вы не можете войти в систему, вам нужно изменить зеркало Taobao обратно на npm. Еще одна вещь, которую следует отметить, это то, что каждый выпуск должен быть обновлен.package.json
Номер версии в файле.
Апплет WeChat npm не может найти пакет npm?
Когда компонент разрабатывается и вводится в использование, пакет npm находится, но я не могу его найти? Ловушка здесь в том, что npm апплета имеет особый способ его использования.
- Сначала инициализируйте npm в корневом каталоге проекта:
npm init -f
- Затем установите соответствующий пользовательский пакет компонентов.
npm install -production miniprogram-table-component
npm/cnpm/yarn добавить можно
-
В инструментах разработчика WeChat выберите «Настройки» -> «Настройки проекта» -> «Использовать модуль npm».
-
В инструментах разработчика WeChat, Tools -> Build npm, сборка будет генерировать
miniprogram_npm
Папки, пакеты npm, используемые проектом, все здесь. -
Согласно вашему собственному пути использования, от
miniprogram_npm
Импортируйте необходимые пакеты.
исходный код табличного компонента
Время разработки спроса относительно короткое, и эффективность работы также максимально повышается, и большое количество времени используется для упаковки компонентов. Я люблю бросать, и это может быть сочтено уместным, чтобы увеличить сложность моих собственных проектов.Чем больше заниматься, тем быстрее технология будет развиваться.