Введение
В этом проекте вы научитесь конвертировать и форматировать табличные данные для их отображения в удобочитаемом виде. Это обычная задача, с которой часто сталкиваются фронтенд-разработчики при работе с данными из бэкенда.
👀 Предварительный просмотр

🎯 Задачи
В этом проекте вы научитесь:
- Отправлять HTTP-запрос для извлечения данных из JSON-файла
- Форматировать данные для соответствия требуемому формату отображения
- Отображать отформатированные данные в HTML-таблице с использованием Vue.js и Element UI
🏆 Достижения
После завершения этого проекта вы сможете:
- Использовать
axiosдля отправки HTTP-запросов и извлечения данных - Обрабатывать и преобразовывать данные в нужный формат
- Интегрировать Vue.js и Element UI для создания отзывчивого и визуально привлекательного компонента таблицы
Настройка структуры проекта
В этом шаге вы настроите файлы и структуру проекта. Следуйте шагам ниже, чтобы выполнить этот шаг:
Откройте папку проекта. Структура каталогов следующая:
├── axios.min.js
├── element-ui.css
├── element-ui.js
├── fetchTableData.json
├── index.html
└── vue.js
Нажмите кнопку Go Live в нижнем правом углу WebIDE, чтобы запустить проект.
Далее откройте "Web 8080" в верхней части ВМ и обновите ее вручную, и вы увидите страницу.
Отправить запрос для получения данных
В этом шаге вы научитесь отправлять HTTP-запрос для извлечения данных из файла fetchTableData.json.
- Откройте файл
index.htmlв редакторе кода. - В секции
<script>добавьте новый методgetTableData()вmethodsв экземпляре Vue. - Внутри метода
getTableData()используйте функциюaxios.get()для отправки GET-запроса к файлуfetchTableData.json:
methods: {
getTableData() {
axios.get("./fetchTableData.json").then((response) => {
// TODO: Форматировать данные и присвоить их tableData
});
}
}
- Вызовите функцию
getTableDataвmountedэкземпляра Vue.
mounted() {
this.getTableData();
},
Отформатировать данные
В этом шаге вы научитесь форматировать данные в требуемый формат и присвоить их свойству tableData.
- Откройте файл
index.htmlв редакторе кода. - В секции
<script>найдите методgetTableData()внутри экземпляра Vue. - Внутри обратного вызова успеха метода
then()в функцииgetTableData()получите свойствоdataиз объекта ответа:
getTableData() {
axios.get("./fetchTableData.json").then((response) => {
let resData = response.data.data;
});
}
Пройдитесь по массиву
resDataи отформатируйте данные в соответствии с требованиями:- Для поля
datetimeпреобразуйте формат изYYYYMMDDвYYYY-MM-DD. - Для поля
sexпреобразуйте значение из1в"Man"и0в"Woman". - Для поля
vipпреобразуйте значение из1в"Yes"и0в"No".
Вот код для форматирования данных:
getTableData() { axios.get("./fetchTableData.json").then((response) => { let resData = response.data.data; resData.forEach((item) => { item.datetime = `${item.datetime.substring(0, 4)}-${item.datetime.substring(4, 6)}-${item.datetime.substring(6)}`; item.sex = item.sex? "Man" : "Woman"; item.vip = item.vip? "Yes" : "No"; }); }); }- Для поля
После форматирования данных присвойте массив
resDataсвойствуtableData:getTableData() { axios.get("./fetchTableData.json").then((response) => { //... this.tableData = resData; }); }
Теперь данные отформатированы и присвоены свойству tableData, которое будет использоваться для отображения таблицы в HTML.
Финальный эффект выглядит так:

Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



