Автор оригинала: Christian Nwamba.
Если вы отображаете несколько изображений на вашем сайте, вы, вероятно, используете галереи изображений. Галереи очень полезны, но могут быть сложными для интеграции в Отзывчивый дизайн Отказ В этой статье мы покажем вам, как Главарное Отзывчивые функции преобразования позволяют быстро и легко создавать адаптивную галерею изображения. Примеры будут построены с помощью реакции.
Countryalious только что объявил A RACT SDK, который позволяет вам легко построить адаптивную галерею изображения. Вы можете просто отбросить изображение из облака в ваше приложение raction и примените преобразования как параметры конфигурации.
Настройте среду реагирования
Существуют минимальные требования для настройки реагирования. WebPack, The De Facto Module Bundling Tool, необходимо настроить и погрузчики, связанные с raction, добавлены:
// ./webpack.config.js var webpack = require('webpack'); var path = require('path'); // Resolve paths var BUILD_DIR = path.resolve(__dirname, 'public'); var APP_DIR = path.resolve(__dirname, 'src'); // Config object var config = { entry: APP_DIR + '/index.jsx', output: { path: BUILD_DIR, filename: 'bundle.js' }, module : { loaders : [ { // Babel loader for React's JSX test : /\.jsx?/, include : APP_DIR, loader : 'babel' } ] } }; module.exports = config;
Процесс очень прост и прямо до точки. Мы указываем как точки записи, так и вывода, затем сообщите WebPack, чтобы пройти наши файлы JSX через Babel Loader.
Далее, реагируйте, Countrary’s React SDK и другие связанные зависимости, включая WebPack и соответствующие погрузчики, должны быть установлены:
./package.json.
{ "name": "img-gallery", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "watch": "webpack -d --watch", "build": "webpack", "serve": "serve ./public" }, "author": "", "license": "MIT", "devDependencies": { "babel-core": "^6.18.2", "babel-loader": "^6.2.9", "babel-preset-es2015": "^6.18.0", "babel-preset-react": "^6.16.0", "serve": "^1.4.0", "webpack": "^1.14.0" }, "dependencies": { "axios": "^0.15.3", "cloudinary-react": "^1.0.1", "react": "^15.4.1", "react-dom": "^15.4.1" } }
Теперь установите зависимости, указанные в Package.json
выше:
npm install
Axios
Библиотека поможет нам сделать HTTP-запросы и обрабатывать ответы с обещаниями. Пользовательские скрипты построить
, Смотреть
и Подавать
Будет нести ответственность за составление Jsx
Исходный код с использованием WebPack и обслуживание их в браузере.
Были установлены несколько предустановок Babel, поэтому они должны быть настроены в .babelrc
файл:
./.babelrc.
{ "presets" : ["es2015", "react"] }
Создайте приложение React
Мы уже сообщили WebPack, что наше приложение должно начать в SRC
Папка с файлом с именем index.js
Отказ Давайте создадим простое приложение RACT в этом файле и проверьте его:
./src/index.js import React, { Component } from 'react'; import { render } from 'react-dom'; class Home extends Component { render() { return (); } } render(Galleria
, document.getElementById('container'));
Прежде чем приложение может быть сделано, нам нужно создать запись index.html
где будет отображаться AGED Compited App:
Давайте обрабатываем стили сейчас, вместо того, чтобы беспокоиться об этом позже:
/* ./public/style.css */ /* Inspired by W3Schools */ body{ background: #e1e1e1; } div.img { border: 1px solid #ccc; } div.img:hover { border: 1px solid #777; } div.img img { width: 100%; height: auto; } div.desc { padding: 15px; text-align: center; } * { box-sizing: border-box; } .responsive { padding: 0 6px; float: left; width: 24.99999%; margin-bottom: 10px; } @media only screen and (max-width: 700px){ .responsive { width: 49.99999%; margin: 6px 0; } } @media only screen and (max-width: 500px){ .responsive { width: 100%; } } .clearfix:after { content: ""; display: table; clear: both; } .gallery{ width: 80%; float: left; } .upload{ width: 20%; float: left; } .container{ padding-top: 50px; } h1{ text-align: center; } .upload-button { padding: 10px 25px; font-size: 20px; color: brown; background-color: gold; border: 3px solid goldenrod; } .upload-button:hover{ background-color: goldenrod; border: 3px solid gold; } .upload-button:active{ outline: none; }
Беги NPM Build
В вашем терминале и NPM запустить
В другом терминале проверить приложение:
Вы можете использовать NPM беги часы
Чтобы построить для каждого изменения, сделанные в исходные файлы.
Наиболее значимым содержанием в стилях – это то, где мы используем средства массовой информации, чтобы сделать каждое изображение полной шириной для небольших устройств и X на X ширины для больших устройств. Простые вещи!
Отзывчивая галерея с облачным
После настройки реагирования и проверки того, что все работает, как и ожидалось, давайте посмотрим, как мы можем использовать HELORALION, облачное решение для управления носителями, которое обеспечивает хранение, преобразование и доставку.
Чтобы получить частное облако, вам нужно подписаться на бесплатное и записывать свое имя облака и учетные данные, как видно на приборной панели.
Вы можете использовать доступные SDK для загрузки изображений в свой облачный или загружать изображения вручную через панель инструментов:
Как видите, я загрузил несколько рождественских изображений, которые я получил от Pexels Отказ
Настроить Double помощью с облачным контекстом
Движение вперед, нам нужно настроить установленную облачность SDK с cloud_name
:
import React, { Component } from 'react'; import { CloudinaryContext, Transformation, Image } from 'cloudinary-react'; import { render } from 'react-dom'; class Home extends Component { render(){ return (); } } render(Galleria
, document.getElementById('container'));
CloudContext
Компонент используется для создания контекста контекста, который завершит группу изображений и преобразований изображений. В этом случае любой компонент компонента изображения или преобразования изображения, добавляемый внутри этого контекста, наследует конфигурацию, поэтому не нужно было бы явно указать другой.
Добавить изображения в облачный контекст
С контекстом, созданным и настроенным, нам нужно начать добавлять изображения:
Изображение
Компонент принимает publicive
опоры, который определяет, какое изображение должно быть загружено компонентом. Это ID
Должен быть действительным и представляют данное изображение в вашем облаке.
Вы можете запросить несколько изображений и отображать их, итерацией по результатам:
import React, { Component } from 'react'; import { CloudinaryContext, Transformation, Image } from 'cloudinary-react'; import { render } from 'react-dom'; class Home extends Component { constructor(props) { super(props); this.state = { gallery: [] } } componentDidMount(){ axios.get('http://res.cloudinary.com/christekh/image/list/xmas.json') .then(res => { console.log(res.data.resources); this.setState({gallery: res.data.resources}); }); } render(){ return ( ); } } render(, document.getElementById('container'));
Сначала мы создаем Галерея
Состояние, которое установлено на сбор данных изображения после установки компонента и Axios
используется, чтобы задать облако для набора изображений. Рождество
в xmas.json
На хвосте запроса URL представляет собой изображения, сгруппированные под Рождество
Тег, и это то, что мы хотим.
Для соображений безопасности обладание не позволит вам сделать такой запрос от клиента, если вы не скажи это Отказ Лучшим методом является использование API API через Backend SDK, а затем отправьте список ресурсов клиенту.
Отзывчивая трансформация
React House SDK также обеспечивает Преобразование
Компонент, который дает вам возможность применять преобразование, поскольку реквизит
:
import React, { Component } from 'react'; import axios from 'axios'; import { CloudinaryContext, Transformation, Image } from 'cloudinary-react'; import { render } from 'react-dom'; class Home extends Component { constructor(props) { super(props); this.state = { gallery: [] } } componentDidMount(){ axios.get('http://res.cloudinary.com/christekh/image/list/xmas.json') .then(res => { console.log(res.data.resources); this.setState({gallery: res.data.resources}); }); } render(){ return ( ); } } render(, document.getElementById('container'));
ширина
, урожай
масштаб
и DPR
Свойства предоставляются Countrary, чтобы помочь вам настроить изображения, чтобы они поместили свой отзывчивый дизайн, пока сохраняют качество изображения.
Заключение
С несколькими строками кодов мы смогли добавить адаптивную галерею изображения в приложение React. Главальное спасает стресс управления изображениями, особенно когда изображение должно быть преобразовано, а также хранится на надежном сервере. Главарный RACT SDK делает нашу работу более простым и очистителем кода, абстрагируя необходимость выполнять привлечение непосредственно на ваш облачный сервер, чтобы извлечь изображения и преобразовывать их.