Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не рабоатет import в js

- Ученик (118), на голосовании 1 год назад
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>game 2048</title>
</head>
<body>
<div class="game-board"></div>
<script src="script.js"></script>
</body>
</html>
script.js:

 import { Grid } from "./grid"


const gameBoard = document.getElementById("game-board");

const grid = new Grid(gameBoard)
alert(1)

grid.js:
 
import { Cell } from "./cell"

const GRID_SIZE = 4;
const CELLS_COUNT = GRID_SIZE * GRID_SIZE

export class Grid {
constructor(gridElement) {
this.cells = [];
for (let i = 0; i < CELLS_COUNT; i++) {
this.cells.push(
new Cell(gridElement, i % GRID_SIZE, Math.floor(i / GRID_SIZE))
);

}
}
}
cell.js:
 export class Cell {
constructor (gridElement, x, y) {
const cell = document.createElement("div");
cell.classList.add("cell");
gridElement.append(cell);
this.x = x;
this.y = y;
}
}
Голосование за лучший ответ
Петр Алексеевич Оракул (82068) 1 год назад
getElementById это буквально "взять элемент по id", не по классу
-Ученик (118) 1 год назад
уже понял пока искал ошибку, спасибо!
✠ Mars-Venus ✠ Знаток (478) 1 год назад
Вообще-то в React надо всячески избегать такой низкоуровневой работы с DOM
createElement
getElementById

Это такая же прописная истина, как и то, что в C++ надо избегать указателей, а предпочитать ссылки и выделение памяти на стеке

Потому что иначе ты усложняешь себе работу и не используешь возможности, которые дает язык
Просто попробуй писать "правильно", каждый день, каждую неделю, и потом сам поймешь что те или иные вещи нужны
SSk-01Мудрец (13601) 1 год назад
нашел кому объяснять, тут уровень копипасты кода
✠ Mars-Venus ✠ Знаток (478) SSk-01, ну все равно надо понимать что без этого не ждет ничего хорошего как разработчика Может он больше дезигнер или бузинесмен, но если считает что он разраб, то увы
Петр АлексеевичОракул (82068) 1 год назад
Реакт тут вообще причем, это жс ванильный
✠ Mars-Venus ✠ Знаток (478) Петр Алексеевич, упс) Ну это выглядит как реакт)
Matz Просветленный (36107) 1 год назад
<script src="script.js" type="module"></script>
FolzyGrief Профи (775) 1 год назад
Импорт не работает, потому что браузеры еще не поддерживают модули ES6, когда скрипт импортирует экспортируемые значения из другого скрипта. Чтобы исправить это, можно использовать инструменты сборки, такие как Webpack или Babel, чтобы скомпилировать скрипты с импортами в скрипты, которые браузеры могут понимать.

Если вы не хотите использовать инструменты сборки, вы можете изменить импорты на обычные теги скриптов. Например, вы можете добавить в HTML тег скрипта для каждого файла JavaScript, который вы хотите использовать, например:

  

В этом случае вы должны убедиться, что порядок загрузки скриптов правильный, и что скрипты не зависят от других скриптов, которые еще не загрузились.
Яков Гото Искусственный Интеллект (320876) 1 год назад
Потому что импортируются модули. Вообще при запуске скрипта, который пытается что-то импортировать или экспортировать, любой современный браузер тебя носом ткнет в то, что нужно явно указать тип скрипта.
Похожие вопросы