Vuejs + vue-router,像http一样在视图之间传递数据post
Vuejs + vue-router, pass data between views like http post
我正在尝试使用 vue-router 在 Vuejs 视图之间传递数据。
//View1.vue
route: {
data: function (transition) {
transition.next({
message: "this is it!!"
});
}
}
我通过单击操作按钮调用下一个视图:
//View1.vue
methods:{
showResult: function(){
this.$router.go('/View2');
}
}
但是在下一个视图中没有填写数据:
//View2.vue
<template>
<p>Message: {{ message }}</p>
</template>
有人知道我使用 vue-router 有什么问题吗?我认为我不需要为此通过服务,对吗?
欢迎在 jsfiddle(或 jsbin 等)上使用示例 :D
如果 View2 是子组件,您可以使用 props 传递它:
//View1.vue
<view2-component :passedData='message'></view2-component>
或者,我相信如果您在 View1 的 $route 对象上设置数据,因为该对象在所有 vue 实例之间共享,我相信它将在整个应用程序范围内可用。
//View1.vue
this.$router.myProps.message = message
但可以说共享数据的更好方法是使用 POJO - 普通的旧 javascript 对象并将其绑定到两个视图。为此,您通常需要一个共享状态对象,如果您愿意,可以为此使用 Vuex,尽管它比 POJO 稍微复杂一些。
我知道这已经得到解答,但如果有人在这里寻找一种方法将数据从路由器传递到路由,我会使用元数据。
不确定这是否是提问者的意思,但我认为是?
我个人更喜欢这个而不是道具,因为我更习惯使用它。
它允许轻松传递和接收数据而无需修改 children.
总之这里有一个片段 link!
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Homepage',
meta: {
logo:{
"/imgs/Normal-Logo.png"
}
}
},
{
path: '/admin',
name: 'Admin',
meta: {
logo:{
"/imgs/Admin-Logo.png"
}
}
},
]
})
任何 children 想要使用变量的人:
<logo :src="this.$route.meta.logo"/>
我正在尝试使用 vue-router 在 Vuejs 视图之间传递数据。
//View1.vue
route: {
data: function (transition) {
transition.next({
message: "this is it!!"
});
}
}
我通过单击操作按钮调用下一个视图:
//View1.vue
methods:{
showResult: function(){
this.$router.go('/View2');
}
}
但是在下一个视图中没有填写数据:
//View2.vue
<template>
<p>Message: {{ message }}</p>
</template>
有人知道我使用 vue-router 有什么问题吗?我认为我不需要为此通过服务,对吗?
欢迎在 jsfiddle(或 jsbin 等)上使用示例 :D
如果 View2 是子组件,您可以使用 props 传递它:
//View1.vue
<view2-component :passedData='message'></view2-component>
或者,我相信如果您在 View1 的 $route 对象上设置数据,因为该对象在所有 vue 实例之间共享,我相信它将在整个应用程序范围内可用。
//View1.vue
this.$router.myProps.message = message
但可以说共享数据的更好方法是使用 POJO - 普通的旧 javascript 对象并将其绑定到两个视图。为此,您通常需要一个共享状态对象,如果您愿意,可以为此使用 Vuex,尽管它比 POJO 稍微复杂一些。
我知道这已经得到解答,但如果有人在这里寻找一种方法将数据从路由器传递到路由,我会使用元数据。
不确定这是否是提问者的意思,但我认为是? 我个人更喜欢这个而不是道具,因为我更习惯使用它。 它允许轻松传递和接收数据而无需修改 children.
总之这里有一个片段 link!
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Homepage',
meta: {
logo:{
"/imgs/Normal-Logo.png"
}
}
},
{
path: '/admin',
name: 'Admin',
meta: {
logo:{
"/imgs/Admin-Logo.png"
}
}
},
]
})
任何 children 想要使用变量的人:
<logo :src="this.$route.meta.logo"/>