ES6 #18 Модули (Modules)

  Рет қаралды 21,547

webDev

webDev

Күн бұрын

Пікірлер: 107
@Indy_660
@Indy_660 4 жыл бұрын
Просмотрел весь плейлист. Спасибо большое, уже год в разработке и много чего подчерпнул и заполнил дыры.
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста
@yuriim7807
@yuriim7807 5 жыл бұрын
Женя, огромную работу делаешь!!! Спасибо большое!!! Желаю успехов в твоём деле!!!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо большое за отзыв!
@GGSoft2009
@GGSoft2009 2 жыл бұрын
Хорошо преподаешь, заставка тоже крутая!!!!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Благодарю
@vladman856
@vladman856 5 жыл бұрын
Большое спасибо за все уроки! Очень доступно.
@ineptDev
@ineptDev 5 жыл бұрын
Видео воспринимать много легче, чем читать статьи, тем более по тем темам, в которых еще очень слаб. Спасибо за курс!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо за отзыв)!
@Gavr-dev
@Gavr-dev 6 жыл бұрын
супер! первый плейлист который я посмотрел целиком, да еще и за 3 дня)
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Отлично! Надеюсь понравилось)
@nouchance
@nouchance 4 жыл бұрын
Спасибо большое! Хорошо объясняете удачи вам!!!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста
@marinakaryukova6231
@marinakaryukova6231 2 жыл бұрын
Как быть? нашла в примере: import productsModule from "./modules/products"; вот только products это папка в которой 2 под папки и 5 вложенных файлов что это за синтаксис такой?
@Under_The_Sun
@Under_The_Sun 3 жыл бұрын
Я вот как начинающий программист, читаю статьи, смотрю видео, на тему модулей, и понимаю, что опытные программисты нефига сами не понимают практическое назначение модулей или не могут его объяснить. В данном уроке не объяснено принципиальное отличие модулей от обычного js-файла, даже определение в стиле, что модуль - это файл показывает искреннее не понимание темы. Потому что работать с обыными js-файлами проще, и не нужно никаких импортов-экспортов и ограничений присущих модулям, кстати о них ни слова. В первых же строчках кода - непростительная ошибка - this не будет работать в модуле. Именно по этой причине я не стал переписывать свои классы под модули - не знаю как, а это критичный момент, и его никто не объясняет, потому что сами не понимают чего говорят. Заслуженный дизлайк.
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Модуль - это отдельный файл с кодом. Не важно что в нём константа, функция, класс, или что-то ещё. Его задача хранить и экспортировать этот кусок. Модули нужны что бы весь JS код не хранился в одном файле, всё. Так что я понятия не имею о каком сокральном смысле модулей вы говорите
@megabulk
@megabulk 4 жыл бұрын
Ничего из сказанного в этом ролике не получается ошибка "Unexpected token '{'. import call expects exactly one argument". А в репозитории курса Js файл пустой.
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
В репозитории курса есть ветки, там весь код
@Andrew-strong
@Andrew-strong 6 жыл бұрын
Спасибо! Лучшие уроки на Ютюб! А можешь сделать видос про замыкания?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо большое! Уже есть такое видео на канале, в плейлисте JavaScript
@lerstq4132
@lerstq4132 4 жыл бұрын
Привет)По какой причине может выходить ошибка Uncaught SyntaxError: Unexpected token 'export' и такая Uncaught SyntaxError: Cannot use import statement outside a module код точно такой же как у вас... браузер хром...
@Venitch.
@Venitch. Ай бұрын
Ошибка “SyntaxError: Cannot use import statement outside a module” возникает, когда интерпретатор JavaScript встречает оператор import вне модуля. В JavaScript модуль - это код, выполняемый в своей собственной области видимости, отдельной от глобальной области видимости. Операторы импорта могут использоваться только внутри модуля, но не в глобальной области видимости. Эта ошибка может возникнуть в средах, которые не поддерживают использование операторов импорта в глобальной области видимости, например, в старых JavaScript-движках или браузерах. фиксится добавлением в тег script аттрибута type="module" в index.html:
@yuriy2109
@yuriy2109 2 жыл бұрын
Смотрю уроки по модулям и пока не нашел, почему у меня перестают работать функции событий кнопок на интерфейсе html, после того как я объявил свой js файл модулем и в отдельный файл скинул для послед импорта модуль с числовыми массивами.
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
На тэг script атрибут type=“module” повесили?
@olgapolskolg1112
@olgapolskolg1112 3 жыл бұрын
спасибо, искала такой урок)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста)
@singlebw4065
@singlebw4065 4 жыл бұрын
Странные вещи творятся. Консоль не выдавала ошибку с этим я разобрался, в подключаемом скрипте надо было указать атрибут type="module". Дальнейшая попытка выводить в консоль чё-то меня напрягает. Явление какое-то непонятное я предаю одну переменную, а отрабатывает весь файл. В консоль всё выводится. Получаемую переменную вывожу сразу в консоль, но не кто не мешает выводить разные данные в консоль в передаваемом файле и отображается это всё в переданном файле. Меня это и смутило. Конечно напрямую к не переданным переменным обратиться не могу.
@Tiberiumgod
@Tiberiumgod 4 жыл бұрын
Так какая разница между export default & export?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
С помощью первого можно экспортировать одну основную сущность из файла. С помощью второго можно экспортировать множественные сущности. Export default - в файле может быть только один, а простых export может быть много
@РегимРагимов
@РегимРагимов 4 жыл бұрын
Еще добавлю, что при помощи default можно экспортировать даже анонимную функцию, что при обычном экспорте невозможно
@carpet5924
@carpet5924 6 жыл бұрын
Евгений, интересует сборка модулей. Скажите, в какую сторону копать - gulp или webpack?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Gulp намного проще, но в последнее время сдаёт позиции. Webpack - стильно, модно, молодёжно. Но порог вхождения выше. Если решите начать с webpack - можете посмотреть курс Ильи Кантора
@carpet5924
@carpet5924 6 жыл бұрын
Спасибо за ответ, я галп применяю на уровне слияния, сжатия файлов + css-препроцессоры и мне он нравится, но когда задался вопросом сборки ES6 модулей, гугл выдает решение этой задачи в 99% случаев с помощью webpack. Вот поэтому и интересно узнать ваше мнение на этот счет
@MrLutor
@MrLutor 5 жыл бұрын
@@carpet5924 а еще есть parcell, его еще посмотрите
@Vladimir-ww1be
@Vladimir-ww1be 3 жыл бұрын
Кратко и ясно спасибо
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста
@dispeltr1183
@dispeltr1183 5 жыл бұрын
Четка! Спасибо Евгений!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста
@web2905
@web2905 4 жыл бұрын
А как объекты экспортирются и импортируются?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Точно так же: export const obj ={}; import { obj } from ‘./file’;
@web2905
@web2905 4 жыл бұрын
@@YauhenKavalchukспасибо
@4sARy
@4sARy 4 жыл бұрын
Тип файла не указывается же при импорте? Может я не прав, но в реакте так...
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Можно и не указывать
@sergepikovsky3385
@sergepikovsky3385 5 жыл бұрын
import {add, subtract, PI} from './justMyMath.js'; Остроконечными шляпками выделено слово "import". SyntaxError: Cannot use import statement outside a module. Вроде все правильно... :-( откуда это?
@demik3106
@demik3106 4 жыл бұрын
попробуйте у файла скрипта в котором используется импорт или экспорт указать тэг type со значение module. type="module"
@mostbest88
@mostbest88 3 жыл бұрын
Спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста
@foxf614
@foxf614 5 жыл бұрын
Евгений, вопрос. Вы описывали простой экспорт с переименованием export { one as onse, two as twice } , а потом импортируете переменные import { one, two } from ... Правильно ли я понимаю что переименование подразумевает что в импорт one пойдет как once? Или все таки как one? Сейчас, к сожалению, нет времени собрать и посмотреть эмпирическим путем:)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Да, всё правильно
@mostbest88
@mostbest88 3 жыл бұрын
Евгений, добрый день. Могу я вам задать вопрос по модулям? Я создаю глобальный объект с именем $. У него хочу сделать несколько методов, каждый из которых будет являться по сути плагином решающим какую-либо задачу. Например, $.modal будет отвечать за всплывающие окна. И для удобства я бы хотел глобальный объект $ сохранить в общем, главном файле main.js, а его методы вынести в отдельные модули. Если я так или создаю отдельный модуль, где храниться глобальный объект, то я получаю ошибку, что объект не определен ($ is not defined). Подскажите, пожалуйста, как лучше поступить в таком случае? Может лучше реорганизовать совой код отказавшись от глобального объекта?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Я бы не рекомендовал такую структуру. Намного лучше разбить всё на отдельные функции и импортировать выборочно. Так и тестировать будет легче, чем монолитный объект с методами
@mostbest88
@mostbest88 3 жыл бұрын
@@YauhenKavalchuk спасибо за ответ.
@philipshpen6191
@philipshpen6191 6 жыл бұрын
не совсем понял про default export для чего он, и в чем отличие от обычного экспорта?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
default export - дэфолтный экспорт, предназначен, например, для экспорта больших сущностей из модуля, для примера компонент. В файле модуля может быть только 1 default export. Обычный экспорт - может экспортировать что-то маленькое: константы, утилиты и т.д. Таких экспортов в файле модуля, может быть сколько угодно.
@philipshpen6191
@philipshpen6191 6 жыл бұрын
@@YauhenKavalchuk а если я сделал дефолтный экспорт, то после могу ли я ещё экспортировать какие переменные, классы и т.д.?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
только с помощью простого экспорта
@РегимРагимов
@РегимРагимов 4 жыл бұрын
@@YauhenKavalchuk На мой взгляд, Принципиальное отличие default от экспорт в том, Что при обычном Экспорт Вам нужно указать название функции переменных или объектов которые вам нужно экспортиповать. А с default вы можете экспортировать даже анонимные функции, массивы и классы без имени и указать их уже при импорте
@antonbobrov6293
@antonbobrov6293 6 жыл бұрын
Здравствуйте, подскажите, пожалуйста, а возможно сделать импорт целого файла в другой без использования вебпак (т.е не отдельные классы,функции импортировать, а целый файл? Задача в том, чтобы все переменные, функции и классы второго js файла видел первый js файл, и их использовал. Пока никакой магией не получается это сделать. Или здесь без сборщиков внешних не обойтись?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
По идее, всё должно работать. Если вы не экспортируете эти файлы в какой-нибудь server.js - который запускается на node. И если вам не нужно поддерживать старые браузеры. Вроде как Хром всё это должен спокойно поддерживать.
@erwererwrwr
@erwererwrwr 6 жыл бұрын
@@YauhenKavalchuk спасибо, а какой тогда синтаксис корректный для импорта целого файла? Это же не отдельный класс, переменная, функция, а разрозненное явление))
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
не совсем понял о чём вы, но есть 2 вариант это export default и просто export. Просто отличается синтаксис импорта: в первом случае он буде import file from './path', а во втором import { file } from './path'
@erwererwrwr
@erwererwrwr 6 жыл бұрын
@@YauhenKavalchuk спасибо большое!
@MrLutor
@MrLutor 5 жыл бұрын
@@erwererwrwr у вас получилось? что нужно прописать в экспортируемом файле для того, чтобы его полностью экспортнуть? с импортом понятно. достаточно будет в конце экспортируемого файла прописать export default ? какой синтаксис в итоге?
@dmitrijponkin
@dmitrijponkin 5 жыл бұрын
Спасибо огромное за Ваш труд!!! А данный синтаксис поддерживается нодой?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
На сколько я знаю - нет
@dmitrijponkin
@dmitrijponkin 5 жыл бұрын
@@YauhenKavalchuk Спасибо!))
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста
@p_levin
@p_levin 6 жыл бұрын
а что будет дальше?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Курс по React & Redux, начинается 16 октября. Все темы курса, длительность а так же планируемые уроки можно смотреть здесь: trello.com/b/R6rD7qq8
@kott8888
@kott8888 4 жыл бұрын
без экспорт импорт почему то не работают
@sayatly
@sayatly 4 жыл бұрын
type="module", а не style
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
¯\ _(ツ)_/¯
@annaa7679
@annaa7679 4 жыл бұрын
Это все написано на learn.javascript.ru. Только вот я делаю все как в учебнике = как в этом видео - но ничего не работает. Самое важное не показали: как правильно связывать файлы, и нужны ли еще какие-то доп.настройки
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
вам скорее всего нужно добавить только module для js файла:
@annaa7679
@annaa7679 4 жыл бұрын
@@YauhenKavalchuk Это нужно добавить к тому скрипту, который импортирует в себя модули? Я это уже пробовала. Я файл html локально запускаю.
@6sha-altyn
@6sha-altyn 4 жыл бұрын
Такая же проблема. В консоли выходит ошибка, что импорт вне модуля невозможен. Пробовал в тег script добавить type="module", не помогло
@jenyaspace
@jenyaspace 6 жыл бұрын
Не получается импортировать, выдает ошибку Uncaught SyntaxError
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Скорее всего, допустили ошибку. Должно работать, т.к. сам недавно проверял
@jenyaspace
@jenyaspace 6 жыл бұрын
@@YauhenKavalchuk нет по синтаксису все верно как у вас на видео
@jenyaspace
@jenyaspace 6 жыл бұрын
@@YauhenKavalchuk как-будто браузер не понимает синтаксис импорта, хотя странно т.к. бабель к проекту подключен
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Chrome вообще должен поддерживать всё из коробки!
@jenyaspace
@jenyaspace 6 жыл бұрын
@@YauhenKavalchuk так почему тогда Хром выдает ошибку Uncaught SyntaxError: Unexpected identifier
@torodinson5260
@torodinson5260 5 жыл бұрын
сделал все точно как ты сказал и вот что получилось main.js:86 Uncaught SyntaxError: Unexpected token { newjs.js:17 Uncaught SyntaxError: Unexpected token export
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Значит что сделали не так. В описании есть ссылка на репозиторий, можете сверить
@egoist2956
@egoist2956 5 жыл бұрын
like
@ТоксичнаяАлександра
@ТоксичнаяАлександра 5 жыл бұрын
Как коротко перед 1 рабочим днем запихнуть в себя гору инфы
@АйПад-Два
@АйПад-Два 4 жыл бұрын
А как удалось пройти собеседование без этой горы?)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
👍
@ChoVasche
@ChoVasche 2 жыл бұрын
Ключевое слово as - это не эсс, нужно произносить эз.
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
👍
@checkTM
@checkTM 4 жыл бұрын
ни слова о том, что так не заработает если не прописать в теле вашего html в тег script - type module :)
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Да, про это сказать забыл(
@checkTM
@checkTM 4 жыл бұрын
@@YauhenKavalchuk да все ок) главное вовремя сказать людям, прежде чем у них сгорит жопа от боли)))
@brend8c
@brend8c 3 жыл бұрын
Написал в одном файле, что мне нужно экспортировать в главный файл и них... не работает.. Соответвенно в главном файле написал что мне нужно импортировать. диз
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Я вообще не понял в чём ваша проблема
@brend8c
@brend8c 3 жыл бұрын
​@@YauhenKavalchuk Вот так вот составил запись и это не работает для меня. Я импортирую переменную в main.js из other.js HTML main.js import test3232 from './other'; console.info(test3232); other.js export default test3232; let test3232 = 'Hello!'; Когда запускаю консоль ругается Uncaught SyntaxError: Unexpected token 'export' export default test3232; Uncaught SyntaxError: Cannot use import statement outside a module import test3232 from "./other";
@brend8c
@brend8c 3 жыл бұрын
Я попробовал записать по другому, это так-же не сработало. HTML main.js import { test3232 } from './other'; console.info(test3232); other.js export let test3232 = 'Hello owl'; Те-же ошибки, что и тогда. Значит дело не в записи а вчём-то другом. В HTML я пробовал подключать по другому (ну а вдруг) но это так-же не сработало.
@AronBergman
@AronBergman 5 жыл бұрын
Четка! Спасибо Евгений!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
@andrewdnistriansky3719
@andrewdnistriansky3719 5 жыл бұрын
Четка! Спасибо Евгений!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
23:18
Модули в JavaScript, import и export, декомпозиция кода
31:42
Александр Ламков — Friendly Frontend
Рет қаралды 6 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
ES6 #16 Генераторы (Generators)
11:41
webDev
Рет қаралды 12 М.
Урок 11. JavaScript. Генераторы. Symbol iterator, for of
17:26
Владилен Минин
Рет қаралды 111 М.
Импорт и экспорт JavaScript. На реальном примере
24:27
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 51 М.
ES6 #13 Промисы (Promise)
8:59
webDev
Рет қаралды 24 М.
Просто о SOLID (Принципы SOLID)
15:54
webDev
Рет қаралды 225 М.