vue.js 中未动态显示列表
List isn't dynamically displayed in vue.js
我是 vue.js 的新手,正在通过 vue 文档、youtube 视频等自行学习。我一直在寻找一段时间并查看youtube教程,但到目前为止还没有找到答案,希望你们能够帮助我。
我的问题是,我正在构建一个网络应用程序,我需要动态显示对象列表,但它在我第一次加载该页面时不显示。我必须去其他路线然后回来看它,所以我想我误解了那个专业领域的某些生命周期或其他东西......
我正在使用 vuex 来存储和检索我的数据,如下所示:
import Vue from 'vue';
const state = {
journees: {},
};
const getters = {
getJourneeList(state) {
return state.journees;
}
};
const mutations = {
GET_LIST(state, journees) {
state.journees = journees;
}
};
const actions = {
getJourneesUser({commit}) {
Vue.axios.get('/journee/')
.then( res => {
commit('GET_LIST', res.data)
})
.catch((err) => console.log(err))
}
};
export default {
state,
getters,
mutations,
actions
};
然后我像这样在我的 vue 中获取它:
<template>
<v-container>
<v-card v-for="heure in heures" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
export default {
name: "TimeList",
data() {
return {
heures: this.$store.getters.getJourneeList,
}
},
created() {
this.$store.dispatch('getJourneesUser');
}
}
</script>
您需要使用 mapState 并在计算值中使用它,因为计算值将响应状态变化。您不需要 getter,但如果您需要,这里是带 getter 的版本。如果你的商店模块叫 journees:
应该是这样的
没有getter
<template>
<v-container>
<v-card v-for="heure in journees" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
import { mapState } from "vuex";
export default {
name: "TimeList",
computed: {
...mapState(["journees"])
},
created() {
this.$store.dispatch("getJourneesUser");
},
};
</script>
和getter
<template>
<v-container>
<v-card v-for="heure in getJourneeList" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
import { mapGetters } from "vuex";
export default {
name: "TimeList",
computed: {
...mapGetters(["getJourneeList"])
},
created() {
this.$store.dispatch("getJourneesUser");
},
};
</script>
我是 vue.js 的新手,正在通过 vue 文档、youtube 视频等自行学习。我一直在寻找一段时间并查看youtube教程,但到目前为止还没有找到答案,希望你们能够帮助我。
我的问题是,我正在构建一个网络应用程序,我需要动态显示对象列表,但它在我第一次加载该页面时不显示。我必须去其他路线然后回来看它,所以我想我误解了那个专业领域的某些生命周期或其他东西......
我正在使用 vuex 来存储和检索我的数据,如下所示:
import Vue from 'vue';
const state = {
journees: {},
};
const getters = {
getJourneeList(state) {
return state.journees;
}
};
const mutations = {
GET_LIST(state, journees) {
state.journees = journees;
}
};
const actions = {
getJourneesUser({commit}) {
Vue.axios.get('/journee/')
.then( res => {
commit('GET_LIST', res.data)
})
.catch((err) => console.log(err))
}
};
export default {
state,
getters,
mutations,
actions
};
然后我像这样在我的 vue 中获取它:
<template>
<v-container>
<v-card v-for="heure in heures" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
export default {
name: "TimeList",
data() {
return {
heures: this.$store.getters.getJourneeList,
}
},
created() {
this.$store.dispatch('getJourneesUser');
}
}
</script>
您需要使用 mapState 并在计算值中使用它,因为计算值将响应状态变化。您不需要 getter,但如果您需要,这里是带 getter 的版本。如果你的商店模块叫 journees:
应该是这样的没有getter
<template>
<v-container>
<v-card v-for="heure in journees" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
import { mapState } from "vuex";
export default {
name: "TimeList",
computed: {
...mapState(["journees"])
},
created() {
this.$store.dispatch("getJourneesUser");
},
};
</script>
和getter
<template>
<v-container>
<v-card v-for="heure in getJourneeList" :key="heure._id">
<v-card-title>{{ heure }}</v-card-title>
</v-card>
</v-container>
</template>
<script>
import { mapGetters } from "vuex";
export default {
name: "TimeList",
computed: {
...mapGetters(["getJourneeList"])
},
created() {
this.$store.dispatch("getJourneesUser");
},
};
</script>