Автор оригинала: FreeCodeCamp Community Member.
Sandeep Adwankar.
Rection 16 – первая версия реагирования, построенная на верхней части новой основной архитектуры Rection, кодомамированного «волокна». Rection 16 предназначена с того, чтобы поддержать асинхронный рендеринг. Это позволяет обработать большие компонентные деревья, не блокируя основную тему выполнения.
Rection 16 популярно, поскольку он поддерживает ряд ключевых функций, таких как удаление исключений с использованием границ ошибок, возвращая несколько компонентов из рендера, уменьшенного размера файла и его поддержку лицензии MIT.
Для создания веб-приложения, ориентированного на данные, например, в акции, вам понадобится электронный интерфейс для отображения данных для ваших пользователей.
Ваши пользователи ожидают, что электронная таблица в вашем приложении будет способна:
- Прокрутка с фиксированным заголовком
- Сортировка, нажав на заголовок столбца
- Показывая и скрывать определенные столбцы
- Пейджинг, группировка и суммирование
- Редактирование данных в клетках
- Экспорт в Excel
- Расширение сверления/строки
Однако электронная таблица или сетка может быть одним из самых сложных и сложных компонентов пользовательского интерфейса для создания реакции. Это связано с тем, что многие из необходимых функций требуют как значимых реагированных экспертизов, а также готовность и способность копать в домо.
Если вы хотите кодировать сетку с помощью таблицы HTML или другой сторонний компонент, вам придется реализовать несколько общих функций. Эти функции включают в себя нажатие на заголовок столбца сетки, чтобы сортировать или нажать на разделитель между заголовком столбца, чтобы изменить размер или скользить пейджер и выполнять валюту для следующей страницы данных.
Для быстрого создания этого приложения мы будем использовать компоненты извлечения Sencha. EXTRECT SENCHA – это компонентный набор из 115+ предварительно встроенных компонентов интерфейса пользовательского интерфейса, который вы можете легко интегрироваться с реагированием 16 приложений. Один из ключевых компонентов в Electeact является сеткой. Он предоставляет электронную таблицу, как функциональность, необходимая для создания приложения для электронных таблиц акций. Мы воспользуемся сеткой EXTREACT, чтобы показать информацию о акциях и компаниях акций.
Давайте начнем с создания запасов приложений с использованием Sencha Extrict Grid.
Электронная таблица акций Scaffolting
Для создания лесов приложений, пожалуйста, выполните следующие действия:
- Убедитесь, что у вас есть среда узла
Во-первых, убедитесь, что у вас есть узел 8.11+ и NPM 6+, установленные в вашей системе. Вы можете скачать новейшую версию узла из Узел веб-сайт Отказ Если вы уже установили узел, вы можете легко проверить узлы и версии NPM, используя эти команды: Узел -в и NPM -V.
- Получите свои учетные данные для входа в EXECT NPM REPO
Учебные пакеты NPM размещены на частном NPM Sencha NPM. Вы войти в этот репо один раз, чтобы получить доступ ко всем пакетам EXTEACT. Чтобы получить учетные данные, перейдите к Extreact 30-дневная бесплатная пробная версия страница и заполнить форму. Мы отправим вам электронное письмо с деталями для входа, а также некоторые ссылки на такие ресурсы, как документы и образцы проектов.
- Войдите, чтобы извлечь NPM Repo и получить генератор приложений
Следующим шагом является войти в частное NPM NPM Sencha, которое принимает пакеты EXTEACT. Используйте свой логин NPM (приведены в пробной электронной почте ExtraCT, чтобы связать NPM REPO с помощью Scope @sencha, и введите учетные данные при предложении:
npm login — registry=http://npm.sencha.com — scope=@sencha
Следующим шагом является установка пакета Extreact Generator.
npm install -g @sencha/ext-react-gen
- Создайте свое первое приложение RACT
Запустите генератор приложений EXECTECT, чтобы создать ваше сначала приложение Extreact:
ext-react-gen app your-app-name-here -i
Генератор приложений задать вам несколько вопросов – например, имя для вашего приложения. По умолчанию приложение использует тему материала (на основе Руководство по проектированию материалов Google ) и является хорошим выбором в качестве отправной темы.
Выберите «Создать пустое приложение» в одном из подсказок. Генератор также предложит вам создать новый каталог для вашего проекта. Затем генератор загрузится и создаст приложение образца, включая соответствующие зависимости.
- Запустите свое приложение React
На выходе генератора вы найдете шаги для запуска вашего приложения. Перейдите в свой новый каталог приложений и запустите приложение, используя:
npm start
Это уволит приложение, а ваше пустое приложение React App просто появится с заголовком приложения. Основным компонентом (E.G. StockSGrid) в приложении имеет один контейнер в корне. Это помечено как полный экран, расположение установлено значение, что означает, что он будет растянуть ребенка, чтобы заполнить его.
Смотрите код до этого шага на Github.
Добавление акций сетки в приложение
Добавить запасы данных
Мы добавим пример набора данных 10 000 строк, называемых stocks.json к приложению. Каждая строка данных содержит имя компании, символ тикера, сектора и отраслей, которые они находятся в. Строка также содержит массив клещи которые являются последними 5 продаж этой акции.
Это данные, которые мы собираемся отображать в нашей сетке. В этом руководстве мы собираемся загрузить данные статически от stocks.json, но вы также можете построить автоподзаконный API, чтобы получить те же данные.
Создание основной сетки
В компоненте React StockGrid в методе Render мы собираемся вернуть сетку с столбцами.
Чтобы добавить столбцы в нашу сетку, мы используем компонент столбца. Компонент столбца принимает индекс данных, который такой же, как и имя данных запасов. Столбец принимает текстовый опоры, который является текстом заголовка столбца. Мы также можем дать столбец ширина, как фиксированная ширина или гибкость или комбинация Flex и минимальных или максимальных. Мы добавим компоненты столбцов для названия компании, символ, галочки, сектора и промышленности. Это создаст новый класс StockSgrid с Grid, как показано ниже
Ваше приложение вернет накопитель как часть рендера, как показано ниже:
export default class App extends Component {
render() { return () }}
Смотрите код до этого шага на Github.
В работе вы сможете увидеть веб-приложение с помощью пустой сетки на NPM Начало
Связывание данных акций с сеткой
Сетка Extreact – это таблица, похожая на электронную таблицу, которая тянет и отображает данные из хранилища данных. В Extreact Store – это структура данных, которая позволяет сортировать и фильтровать данные в сетке.
Теперь мы можем начать с загрузки данных акций и созданию магазина. Сетки будут схватить свои данные из магазина. Взаимодействия с сеткой запускают события в магазине, например, перезарядки или сортировки или пейджинга.
Концепция хранилища данных EXTECACT немного отличается от магазина потока. Что делает сетку и магазин немного отличаться от стандартного подхода реагирования, заключается в том, что два плотно интегрированы. Как правило, вы можете передавать данные непосредственно в магазин, или магазин может потянуть данные самостоятельно с заднего конца с помощью прокси. Сетка Extreact обеспечивает интерактивную функциональность, такую как фильтрация, сортировка, печь, группировка и сводка без какого-либо дополнительного кода.
Для этого примера мы передаем данные прямо в магазин из файла данных акций. В качестве альтернативы вы можете создать магазин с помощью конфигурации прокси – имея прокси, позволяет нам делать все виды отличных вещей, таких как удаленный пейджинг, фильтрация и сортировка. Для этого приложения мы устанавливаем Autoload в True, поэтому он автоматически загружает данные в сетку. Необработанные данные не особенно отсортированы по каким-либо критериям, поэтому мы будем иметь его сортировку на стороне клиента, указав свойство имя.
this.store = new Ext.data.Store({ data: stocks, autoLoad: true, sorters: [{ property: 'name' }], listeners: { update: this.onRecordUpdated }})
В сетке назначите конфигурацию магазина в магазин, который мы создали.
...
Сейчас работает NPM начать Наше приложение имеет сетку со всеми данными, как показано ниже:
С этим простым реагированным кодом вы получаете много функций бесплатно. Эти функции включают сортировку, которая позволяет нажать на любой заголовок столбца, и он автоматически сортирует на стороне клиента. Если мы реализовали реальную спину API, мы могли бы настроить прокси-сервер хранения, чтобы сделать удаленную сортировку на задней панели и использовать предложение «order by» в базе данных, чтобы сделать сортировку. EXTREACT GRID также предоставляет измерительные колонны бесплатно. Таким образом, пользователь может перетащить столбец из стороны в сторону.
Extreact Grid также предоставляет хорошую группирующую функцию. Ваше приложение пользователь может группировать по отраслям, а приложение будет группировать все данные по отраслям. Сетка EXTEACT даст вам закрепленный заголовок, когда вы прокрутите вниз для каждой из группингов.
При запуске вашего приложения вы заметите, что эти данные оказываются довольно быстро для 10000 записей. Причина, по которой она визуализирует так быстро, это потому, что она использует то, что мы называем Буферизованный рендеринг Отказ С Буферизованный рендеринг На начальной нагрузке сетка отображает данные, которые немного больше, чем то, что вы действительно видите в терминах «высоты порта View. As you run your app, you’ll notice that this data is rendering pretty quickly for 10,000 records. The reason it renders so quickly is because it’s using what we call
Смотрите код до этого шага на Github.
Стайлинг ваших акций сетки
Вы хотите стиль сетки, чтобы данные проще проанализировать.
Использование ячейки сетки
Давайте посмотрим на контроль укладки сетки клеток. Мы хотим сделать имя смелым – лучшим способом сделать это, используя опоры клеток. Ячейка сетки принимает ряд конфигов, которые контролируют то, как выглядит клетка. Мы выбросим в стиле конфигурацию там, а потом мы скажем, что Fontwee вес равняется смелым.
cell={ { style: {fontWeight:'bold'}}}
Добавление кнопки подряд
Теперь, скажем, мы хотим иметь кнопку, которую мы можем нажать, чтобы купить один из этих акций. Для этого мы можем добавить столбец с кнопкой. На этот раз мы не собираемся добавить индекс данных, потому что он не соответствует ни одному полю в магазине. Мы собираемся добавить WidgetCell с помощью кнопки. Мы сделаем какой-то стиль – мы собираемся поставить действие Rouge ui на нее, поэтому кнопка будет иметь круглое действие, как показано ниже:
Обработчик покупки, которые мы собираемся использовать, очень просто. Когда вы нажмете кнопку «Купить», мы просто покажем небольшое сообщение, которое говорит символ акции, который вы покупаете. Когда вы нажмете на нем, он собирается позвонить эту функцию:
buyHandler = (button) => { let gridrow = button.up('gridrow'), record = gridrow.getRecord(); Ext.toast(`Buy ${record.get('name')}`)}
Как видно из этого примера, который вы можете в основном встроить любой компонент EXTECACT внутри соты сетки Extreact, и она полностью интерактивна.
Смотрите код до этого шага на Github
Добавление тенденций Sparkline Chart для акций сетки
В запасах данных у нас есть массив клещей на последних пяти продажах акций. Давайте встраиваем, что в качестве сикальной диаграммы внутри сетки. Опять же, мы собираемся использовать WidgetCell, чтобы сделать компонент Electeact внутри сетки ячейки.
Как вы запускаете свое приложение с помощью NPM начать Используйте вашу мышь в разные точки в диаграмме Sparkline, она будет отображать значение Y, отформатированное двумя десятичными точками.
Смотрите код до этого шага на Github.
Экспорт запасов данных для Excel
Как и в случае любого приложения, интенсивного данных, мы хотим возможность экспортировать данные для Excel. Чтобы добавить эту возможность, мы добавим GridexPorterer к плагинам опоры в сетку, как показано:
Мы добавим еще несколько компонентов для приложения, чтобы облегчить вызвать экспортную функциональность. Мы добавим строку заголовка и строку заголовка в верхней части сетки и поместите меню внутри. Когда вы нажимаете на кнопку «Экспорт», у вас будет возможность экспортировать либо на Excel или CSV.
Обработчик экспорта пройдет по типу экспорта и расширении имени файла, как показано:
export = (type) => { this.grid.cmp.saveDocumentAs( { type, title: 'Stocks' });}
Вам нужно будет пройти экспортер в Package.json Зависимости, как показано:
"@sencha/ext-exporter": "~6.6.0"
Вам понадобится установить зависимость с Установка NPM You will need install the dependency with npm install and then npm star
Плагин экспортера позволяет экспортировать данные в различные форматы файлов. Он поддерживает нативную XSLX, Excel XML, а также форматы HTML и CSV/TSV (COMMA/TAB SELED).
Смотрите код до этого шага на Github.
Добавление возможности редактирования в сетку акций
Электронная таблица требует возможности редактирования данных. Чтобы добавить эту возможность, нам нужно добавить другой плагин сетки под названием GridCellediting. Добавляя этот плагин и маркировку столбцов в качестве редактируемых, у вас сейчас есть электронная таблица, которая может быть отредактирована двойным щелчком на любой ячейке сетки. Вы можете продолжать редактировать сетку на табуляцию через клетки сетки.
Добавить плагин для редактирования сетки с GridCellediting: True И создание «имя» редактируемые в столбце сетки, как показано:
Как вы запускаете свое приложение с помощью Начнем NPM Теперь вы сможете редактировать сетки клетки.
Обращение редактирования событий
После редактирования ячейки сетки вам нужно будет прослушать это событие в магазине для изменений данных. Вы делаете это, добавляя конфигурацию прослушивателя и слушателя на «Обновление события». Событие обновления передаст ряд параметров, включая хранилище, обновленную запись, объект, который описывает операцию, которая произошла, а затем передает массив измененных имен полей. Вы добавите это в обработчике.
В этом приложении мы просто показываем тостское сообщение. В приложении Real-World вы фактически применяете бизнес-логику, такие как изменение сохранения в базе данных.
...
listeners: { update: this.onRecordUpdated }
...
onRecordUpdated = (store, record, operation, modifiedFieldNames) => { const field = modifiedFieldNames[0]; Ext.toast(`${record.get('name')} ${field} updated to ${record.get(field)}`) }
Добавление параметра выбора в ячейку сетки
Если вы хотите добавить опцию «Выбрать» в ячейку сетки, вы можете сделать это, используя другой компонент EXTECACT под названием SelectField. Вы просто добавляете компонент выбора полевого экстракта в обязательном столбце.
Как вы запускаете свое приложение с помощью Начнем NPM Теперь вы сможете увидеть варианты выбора, как показано:
Смотрите код до этого шага на Github.
Оптимизация акций электронной таблицы для мобильного опыта
Это приложение хорошо работает для опыта на рабочем столе, но вы можете предоставить оптимизированный опыт при использовании того же приложения на браузере мобильного телефона. Для этого приложения редактирование клеток не может быть лучшим опытом для редактирования мобильного телефона с небольшим экраном. Для небольших устройств экрана вы можете выбрать другой стиль редактирования.
Извлечение PlatformConfig Опция позволяет вам указать поведение для рабочего стола или мобильного телефона. Вы можете установить любой опоры на другое значение на основе PlatformConfig. The ExtReact platformconfig option allows you to specify behavior for desktop or mobile. You can set any prop to a different value based on platformConfig and here we’re setting the plugin based on the platform. In this example, we’ll use gridcellediting
platformConfig= {{ desktop: { plugins: { gridexporter: true, gridcellediting: true } }, '!desktop': { plugins: { gridexporter: true, grideditable: true } }}}
Как вы запускаете свое приложение с помощью Начнем NPM Теперь вы сможете увидеть мобильный вид, как показано:
Смотрите код до этого шага на Github.
Резюме
Это приложение Scice Spactshient Spreadsheet показывает, насколько легко создавать электронный интерфейс, как легко в вашем веб-приложении, управляемой данными, используя Rection 16 и Sencha Extreact. Вы можете просмотреть завершенное запущенное приложение в Sencha Widdle Отказ