Для исходного вопроса
Как сказано в комментарии, это ошибка eslint
.Скорее всего, вы настроили свой проект с помощью vue-cli, который по умолчанию поставляет ваш проект с конфигурацией eslint. Eslint - это инструмент , который проверяет ваш код на наличие каких-либо ошибок.
В вашем случае, в main.js
вы выполняете:
const app = new Vue({
el: '#app',
router,
components: {
HelloWorld
}
})
Когда вы назначаете переменную app
, но вы ничего не делаете с этой переменной.Эслинт жалуется на это, поскольку неиспользуемые переменные обычно являются следствием человеческой ошибки и являются ошибкой.
Вы можете просто пропустить присвоение переменной и просто:
new Vue({
el: '#app',
router,
components: {
HelloWorld
}
})
Без переменной приложения.
или вы можете добавить комментарий в строку, например:
// eslint-disable-next-line no-unused-vars
new Vue({
el: '#app',
router,
components: {
HelloWorld
}
})
Ваша проблема, насколько я знаю, не имеет никакого отношения к vuex.
Кроме того, если вы действительно хотите использовать app
в любой другой части вашего приложения, просто добавьте:
export default app
в конце файла main.js
.Это также исправит эту ошибку, поскольку теперь вы на самом деле что-то делаете с переменной app
.
Несколько советов:
Вы можете настроить любой редактор на работус Эслинт.Таким образом, сам редактор (например, vscode) даст вам визуальную обратную связь, когда вы нарушите некоторые правила eslint.Также вы можете настроить комментарии на игнорирование правил eslint в определенных строках, если хотите.
Вы можете настроить поведение eslint , добавив файл конфигурации .eslintrc в ваш проект ,В вашем конкретном случае, я думаю, хорошо, что eslint запрещает вам компилировать этот код (неиспользуемые переменные в лучшем случае вводят в заблуждение), но иногда вы можете не захотеть следовать некоторым правилам eslint, в зависимости от стиля кода и многих соображений.1043 *
Для редакции вопроса
Теперь, когда вы исправили предыдущую ошибку eslint
, вы получаете новую: do not use new for side effects
ThisПравило eslint, опять же, обычно имеет некоторый смысл: new
вызовы предназначены для возврата объекта, поэтому технически не следует использовать new
без присвоения результата переменной.
Однако Vue
API фактически делает это, поэтому на этот раз вы должны игнорировать eslint:
// eslint-disable-next-line no-new
new Vue({
el: '#app',
router,
components: {
HelloWorld
}
})
Это должно сработать.Чтобы понять, как можно использовать комментарии для отключения определенных eslint
правил, этот ответ очень помогает .