Aiperi_NK
Я хотела спросить в продакшене какой метод API лучше использовать в react, например через Next js, Redux, Node и Docker, и др. Первый раз, поэтому хотела посоветоваться.
Aiperi_NK
Классно было бы если ссылки отправили, если есть🙏🏻
Vyacheslav
Я хотела спросить в продакшене какой метод API лучше использовать в react, например через Next js, Redux, Node и Docker, и др. Первый раз, поэтому хотела посоветоваться.
Ну Next, Node и докер эт мы скорее не туда уехали чем туда, а так вопрос я так понял больше к структуре стора и экшенов, первая ссылка в гугле по запросу react redux api example https://dev.to/markusclaus/fetching-data-from-an-api-using-reactredux-55ao
Aiperi_NK
Что есть api?🤔
вывод данных с бекэнда на странцу фронтенд
Aiperi_NK
страницу
Dima
У меня есть время с 12:34 до 14:30 и мне нужна разбить на объект. Сколько активных минут в определенном часе{ 0:0, 1:0, ..., 12: 26, 13: 60, 14:30, ... }
Dima
В часе всегда 60 минут
Сколько используется минут из определенного часа
Andrei
доброе утро всем, в чем может быть проблема при билде в прод?
Andrei
package.json "build:production": "./node_modules/.bin/babel -d build packages/ --ignore **/__test__", "dist:dev": "./node_modules/.bin/webpack --config conf/webpack.dev.conf.js", "dist:min": "./node_modules/.bin/webpack --config conf/webpack.min.conf.js", "dist:production": "./node_modules/.bin/webpack --config conf/webpack.prod.conf.js", "build": "npm run build:production & npm run dist:production & npm run dist:min" webpack.min.prod.js require('babel-register'); const webpack = require('webpack'); const PATHS = require('../config').PATHS; const entries = require('./webpack.util.js').default; // thank you babel 6 const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); module.exports ={ mode: 'production', entry: entries(), output: { path: PATHS.PROD.JS, filename: '[name].min.js' // Template based on keys in entry above }, module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader' } ] }, optimization: { minimizer: [ new UglifyJsPlugin({ sourceMap: true, uglifyOptions: { output: {comments: false}, warnings: false } }), ], }, plugins: [ // Plugins for optimization new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.AggressiveMergingPlugin(), new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'}) ], resolve: { extensions: ['.js', '.jsx'] } }; webpack.prod.conf.js require('babel-register'); const PATHS = require('../config').PATHS; const entries = require('./webpack.util.js').default; module.exports ={ mode: 'production', entry: entries(), output: { path: PATHS.PROD.JS, filename: '[name].js' // Template based on keys in entry above }, module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader' } ] }, plugins: [], resolve: { extensions: ['.js', '.jsx'] } };
Evgeny
package.json "build:production": "./node_modules/.bin/babel -d build packages/ --ignore **/__test__", "dist:dev": "./node_modules/.bin/webpack --config conf/webpack.dev.conf.js", "dist:min": "./node_modules/.bin/webpack --config conf/webpack.min.conf.js", "dist:production": "./node_modules/.bin/webpack --config conf/webpack.prod.conf.js", "build": "npm run build:production & npm run dist:production & npm run dist:min" webpack.min.prod.js require('babel-register'); const webpack = require('webpack'); const PATHS = require('../config').PATHS; const entries = require('./webpack.util.js').default; // thank you babel 6 const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); module.exports ={ mode: 'production', entry: entries(), output: { path: PATHS.PROD.JS, filename: '[name].min.js' // Template based on keys in entry above }, module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader' } ] }, optimization: { minimizer: [ new UglifyJsPlugin({ sourceMap: true, uglifyOptions: { output: {comments: false}, warnings: false } }), ], }, plugins: [ // Plugins for optimization new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.AggressiveMergingPlugin(), new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'}) ], resolve: { extensions: ['.js', '.jsx'] } }; webpack.prod.conf.js require('babel-register'); const PATHS = require('../config').PATHS; const entries = require('./webpack.util.js').default; module.exports ={ mode: 'production', entry: entries(), output: { path: PATHS.PROD.JS, filename: '[name].js' // Template based on keys in entry above }, module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader' } ] }, plugins: [], resolve: { extensions: ['.js', '.jsx'] } };
@webpack_ru
R
я правильно понимаю, что в react-dnd до сих пор нет кроссплатформенного бэкенда?
R
Ду.
это было “да”?
Valentin
это было “да”?
👍 Есть другие библиотеки. Или пиши бакену сам. То ли днд бьюти и что то ещё было. Вообще я сам страдал по этой теме. И хотел написать свой кросс днд, на хоках легковесный и понятным апи и кроссплатформенным... но не написал. (Мб попоже). Да точно есть по соседству кроссплатформенный, но без поддержки тс. Кажется днд бьюти
vlad
всем привет, кто подскажет, как сделать чтобы на момент вызова аксиоса , в стейте уже была записана долгота и ширина?
vlad
Создавай инстанс аксиома со своими настройками.
axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' } }); в таком формате?
vlad
а, точно, понял, спасибо
Сергей
пацыки, такой вопрос. Есть tree table и есть кнопка развернуть все, элементов может быть оч много. Как правильно это сделать, чтобы это не тупило при рендере?
Dmitry
Интерсепторы заюзать
Зачем? И ответ ему выше тоже ни о чем. Он просто хочет запрос с позицией сделать
Vlad
Gatsby - генератор статических веб-сайтов
Vlad
Берет твой код и стили и рендерит его в html + css + js
Dmitry
В виртуализации нужно сделать шарку и другие строки. Отследить апдейт высоты и ширины шапки можно? Что бы пересчитать стили?
Max
Ребята всем привет , только учу реакт столкнулся с следущей ошибкой: установил redux через npm создал файл store.js в нем import { createStore } from 'redux'; const store = createStore(); export default store;
Max
выдает ошибку Expected the reducer to be a function.
Сергей
createStore принимает в себя аргументы
dimitriy
Ребят, подскажите плиз, плохо использовать контекст для поднятия данных наверх ? Как пример - нужно пару методов компонента пробросить наверх через родителя.
Anonymous
Подскажите плиз, перевел компонент класса на хуки, при загрузки страницы в компоненте контейнера в useeffect вызывается Фетч экшен редакса, срабатывает норм, но если я перехожу на другую страницу приложения и возвращаюсь назад то рендер срабатывает два раза, и дерганье получается на экране элементов, в компоненте класса все норм
dimitriy
ага, через функцию. Ну то есть это норм вариант для данного кейса?
dimitriy
Спасибо!
Bogdan
сталкивался кто? в едже, ie, работает , в хроме нет
🦜
откуда вы с такими мыслями вообще беретесь?
Sm•ok
Орнул))
N
чуваки помогите
N
чуваки помогите
как мне сделать редирект:
Vadim
как мне сделать редирект:
ты компонент в обработчике возвращаешь, нужно в render
🦜
history.pushState
Anonymous
Подскажите плиз, перевел компонент класса на хуки, при загрузки страницы в компоненте контейнера в useeffect вызывается Фетч экшен редакса, срабатывает норм, но если я перехожу на другую страницу приложения и возвращаюсь назад то рендер срабатывает два раза, и дерганье получается на экране элементов, в компоненте класса все норм
Екатерина
Подскажите браузерный ивент, типа когда ввела что-то в форму и пытаюсь перейти на другую страницу, а он говорит что изменения не сохранены Если можно, ссылку на репо 🙏
Sm•ok
window on before unload?
Nikita
Часто вижу методы в реакте с андерскором, можешь подсказать для чего его добавляют в начало?
Anonymous
код на gist
https://gist.github.com/xyembeu/4e3fa90d8872caba97dc5c0e12e6b529
🦜
https://gist.github.com/xyembeu/4e3fa90d8872caba97dc5c0e12e6b529
тебе надо if добавить внутри useEffect на dispatch. Что если данные есть, то ничего не делать
Anonymous
тебе надо if добавить внутри useEffect на dispatch. Что если данные есть, то ничего не делать
А если мне надо актуальные данные? При каждой загрузки страницы этой надо фетчить
Nikita
это типо приватный метод
а чем они от обычных отличаются?
🦜
А если мне надо актуальные данные? При каждой загрузки страницы этой надо фетчить
можно добавить time stamp и еще его проверять. Здесь через deps: [] не разрулить
🦜
а чем они от обычных отличаются?
ну типо их юзает только компонент и он не используется в api
Dmitry
посоны кому не сложно скинте скрин скролла в браузере хром на винде
Артем
https://gist.github.com/avkulikov/2b555d96cedc1912d097f356eb9e89e2 Доброго всем! Есть функциональный компонент, который рендерит подсказки по мере ввода в инпуты(к слову, value при изменении заносится в стор). Фильтрует во время эффекта, который соответсвенно зависит от значений инпутов. Во время клика на каком-либо элементе селекта. По задумке, должен очищать массив отфильтрованных полей. Очищает, все круто. Но так же обновляет зависимые значения инпутов, что собственно правильно. Потому что значение зависимости изменилось. Собственно вопрос: как при клике на выбранный элемент пропустить выполнение последующего эффекта, до того момента как не изменят значения инпута?
Anonymous
можно добавить time stamp и еще его проверять. Здесь через deps: [] не разрулить
Почему в классовом компоненте нормально работало ? специфика работы useEffect ?
Артем
Пробовал переназначать значения другим переменным.. но суть не меняется
Anonymous
что значит нормально работало? Понятие размытое
Не надо было условие ставить, при повторной загрузке компонента как с чистого листа, без дерганий, а функциональный компонент сначала прорисовал старые данные, потом дернулся экран стерлись данные и подрузились новые
Артем
Типо если issuedBy || subdivisionCode >= 10 ? return () => { setFilteredSuggestions( [] ) } ?
🦜
Anonymous
ну раз нормально работало, зачем переписывать было? Потом какие-то непонимания, притензия к ФК
Желание было пощупать хуки, теперь интересно стало это баг или так и работает хук useeffect
🦜
Желание было пощупать хуки, теперь интересно стало это баг или так и работает хук useeffect
почитай документацию сначала, она уже на русском про хуки https://overreacted.io/a-complete-guide-to-useeffect/ Тут от Абрамова
Артем
useEffect(() => { if(cond) return; / остальной код / })
Логично, но выглядит костыльно... Спасибо
Vadim
Логично, но выглядит костыльно... Спасибо
Почему костыльно? Если есть данные то не запрашивай данные. Где костыль?