Рубрики
Без рубрики

Построить галерею React Image с облачным

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

Автор оригинала: 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 (
            

Galleria

); } } render(, 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 (
            

Galleria

); } } render(, document.getElementById('container'));

CloudContext Компонент используется для создания контекста контекста, который завершит группу изображений и преобразований изображений. В этом случае любой компонент компонента изображения или преобразования изображения, добавляемый внутри этого контекста, наследует конфигурацию, поэтому не нужно было бы явно указать другой.

Добавить изображения в облачный контекст

С контекстом, созданным и настроенным, нам нужно начать добавлять изображения:

// ...
render() {
        return (
            

Galleria

) }) }
); }

Изображение Компонент принимает 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 (
            

Galleria

{ this.state.gallery.map(data => { return (
Created at {data.created_at}
) }) }
); } } 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 (
            

Galleria

{ this.state.gallery.map(data => { return (
Created at {data.created_at}
) }) }
); } } render(, document.getElementById('container'));

ширина , урожай масштаб и DPR Свойства предоставляются Countrary, чтобы помочь вам настроить изображения, чтобы они поместили свой отзывчивый дизайн, пока сохраняют качество изображения.

Галерея реагирования изображения
Галерея реагирования изображения

Заключение

С несколькими строками кодов мы смогли добавить адаптивную галерею изображения в приложение React. Главальное спасает стресс управления изображениями, особенно когда изображение должно быть преобразовано, а также хранится на надежном сервере. Главарный RACT SDK делает нашу работу более простым и очистителем кода, абстрагируя необходимость выполнять привлечение непосредственно на ваш облачный сервер, чтобы извлечь изображения и преобразовывать их.