vue-routerとwebpackでvuejs 2.0を使用しています。コンポーネントを含むストアを使用するVueJs2
src/storesフォルダ内にあるsession-store.jsを使用してコンポーネントをリストする必要がありますが、App.vue内のコンポーネントとそのコンポーネント内のストアからデータを読み取ることができません。
セッションstore.js
import $ from 'jquery'
var SessionStore = {
state: {
data: []
},
fetchSessionScheduleData: function() {
$.ajax({
url: 'https://www.myapi.com/items',
success: function (response) {
if (response.data) {
SessionStore.state.data = response.data
}
}
})
}
}
App.vue
<script>
import SessionStore from './stores/session-store.js'
export default {
name: 'app',
components: {
Test
},
data() {
return {
SessionStore: SessionStore.state
}
},
created: function() {
this.fetchData()
},
methods: {
fetchData: function() {
SessionStore.fetchSessionScheduleData()
}
}
}
</script>
main.js
import './assets/css/materialize.css'
import './assets/css/oclock-styles.css'
import './assets/css/styles.css'
import Vue from 'vue'
import App from './App'
import VueRouter from 'vue-router'
import Hello from './components/Hello.vue'
import Schedule from './components/Schedule.vue'
Vue.use(VueRouter)
const routes = [
{ path: '/', component: Schedule },
{ path: '/foo', component: Hello },
{ path: '/schedule', component: Schedule }
]
const router = new VueRouter({
routes // short for routes: routes
})
/* eslint-disable no-new */
new Vue({
router,
el: '#app',
template: '<App/>',
components: { App }
})
Schedule.Vue
<template>
<div v-once>
<h4>{{ formatDate(index) }}</h4>
<ul class="collapsible" data-collapsible="expandable">
<session-schedule v-for="log in item" v-bind:item="log"></session-schedule>
</ul>
</div>
</template>
<script>
export default {
name: 'Schedule',
data() {
return 'Hello'
},
methods: {
formatDate (date) {
var moment = require('moment')
var now = moment(new Date())
var sessionDate = moment(date, 'DD-MM-YYYY', true).format()
var diff = now.diff(sessionDate, 'd')
if (diff === 0) {
return 'Today'
} else if (diff === 1) {
return 'Yesterday'
} else {
return date
}
}
}
}
</script>
データをフェッチできるようにするにはどうすればよいですか? と、スケジュールコンポーネントからsession-scheduleコンポーネントを呼び出す方法は?
私はあなたのストアオブジェクト/変数をエクスポートしていないと思うので、 var SessionStore = {//ここにあなたのコード} ' –
@belminどこでこれを行うべきですか? –
セッションストアファイルでは、varキーワード –