#vue.js #vuex
#vue.js #vuex
Вопрос:
В документах vuex указано, что вы должны передать созданное хранилище экземпляру vue следующим образом
new Vue({
el: '#app',
store: store,
})
Моя проблема в том, что я создал новый проект vue, используя CLI, и который монтирует приложение в mian.js
использование create app следующим образом:
import App from './App.vue'
const app = createApp(App)
app.mount('#app')
Как мне передать хранилище, используя второй метод, чтобы я мог получить к нему доступ из любого компонента, или как мне правильно смонтировать приложение, используя первый метод? В чем разница между ними?
Насколько я понимаю createApp()
, это новое в vue 3, я не уверен, как это работает, я не могу найти нужные документы, в чем разница между new Vue({})
и createApp()
?
Я уверен, что не понимаю какой-то базовой концепции, но я не знаю, какой именно…
Спасибо.
Ответ №1:
Вы должны использовать createStore
из vuex
v4 rc, а затем вызвать app.use(store)
:
store.js
import { createStore } from 'vuex'
export const store = createStore({
state () {
return {
count: 1
}
}
})
app.js
import { createApp } from 'vue'
import { store } from './store'
import App from './App.vue'
const app = createApp(App)
app.use(store)
app.mount('#app')
Смотрите Процесс установки Vuex v4
Комментарии:
1. Это то, что я делаю, но это все равно выдает мне ошибку
TypeError: Object(...) is not a function
.. Я понятия не имею, почему2. Исправление, которое выдает ошибку хранилища, не определено..
3. В какой строке вашего кода вы получаете ошибку
TypeError: Object(...) is not a function
?4.
export const store = createStore({
Редактировать: это исправлено.. Я не импортировалcreateStore
с фигурными скобками{ }
5. можете ли вы вывести
createStore
на консоль и добавить этот вывод в свой вопрос?