Vue.js 如何基于当前路由在vue/vuex中设置搜索选项
我正在使用vuex和vue路由器创建一个简单的应用程序,它可以在不同的路径上渲染电影和节目,并为这两个路径提供搜索选项。电影和节目在单独的组件中,我的搜索输入元素在Layout.vue组件中。我通过vuex制作了一个电影搜索选项,可以正常工作,现在我想为节目设置搜索选项。 现在我想知道是否可以通过vuex设置搜索选项,仅当我在“/movies”路线上时触发电影搜索,并仅当我在“/shows”路线上时触发节目搜索 store.jsVue.js 如何基于当前路由在vue/vuex中设置搜索选项,vue.js,vuejs2,vuex,vue-router,Vue.js,Vuejs2,Vuex,Vue Router,我正在使用vuex和vue路由器创建一个简单的应用程序,它可以在不同的路径上渲染电影和节目,并为这两个路径提供搜索选项。电影和节目在单独的组件中,我的搜索输入元素在Layout.vue组件中。我通过vuex制作了一个电影搜索选项,可以正常工作,现在我想为节目设置搜索选项。 现在我想知道是否可以通过vuex设置搜索选项,仅当我在“/movies”路线上时触发电影搜索,并仅当我在“/shows”路线上时触发节目搜索 store.js const getters = { filterMovies:
const getters = {
filterMovies: state => {
return state.movies.filter(movie => {
return movie.title.toLowerCase().match(state.textSearch.toLowerCase())
})
},
movie: state => state.movie
};
const mutations = {
setMovies: (state, items) => (state.movies = items),
setMovie: (state, items) => (state.movie = items),
setLoading: (state, payload) => (state.loading = payload),
updateSearch: (state, payload) => (state.textSearch = payload)
};
Layout.vue
methods: {
updateSearch(e) {
this.$store.commit('updateSearch', e.target.value)
}
我想说的是,您要做的是将一个参数传递给getter
getMoviesByName:state=>name=>state.movies.filter(x=>x.title==name)
这样说吧
this.$store.getters.getMoviesByName(this.$route.params.movieName)
此外,您要做的是利用来根据路由呈现所需的数据。我想说的是,您要做的是将一个参数传递给getter
getMoviesByName:state=>name=>state.movies.filter(x=>x.title==name)
这样说吧
this.$store.getters.getMoviesByName(this.$route.params.movieName)
此外,您要做的是利用渲染基于路由的所需数据。这样您就可以将当前路由传递给操作/变异,然后就可以轻松地处理它
updateSearch(e) {
const { currentRoute } = this.$router.currentRoute
this.$store.commit('updateSearch', e.target.value, currentRoute)
}
所以你可以将当前的路径传递给动作/变异,然后你就可以轻松地处理它
updateSearch(e) {
const { currentRoute } = this.$router.currentRoute
this.$store.commit('updateSearch', e.target.value, currentRoute)
}