公共的组件,在多个页面中被引用,项目启动后会发出重复的多次请求,也会mounted很多次,怎么解决这个问题?
因为我的做法是组件内部自己管理数据的,可能会通过prop和其他组件交互,但是组件内做请求在我这边是可行的。
也就是数据请求还是放在组件里面,而我还没遇到你的问题。
我想,主要的问题在于
mounted很多次
一般而言,router中是这样配置的:
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
这个时候,加载的是一个component,所引用的组件应当mounted吧。
但是如果使用的是命名视图:
const router = new VueRouter({
routes: [
{
path: '/',
components: {
default: Foo,
a: Bar,
b: Baz
}
}
]
})
这时,同一个页面中有多个view,那么多个组件一起mounted,引用的组件即使是相同,也会独立mounted一次,毕竟scope是不一样的。
我想还是项目结构的问题,公共组件的数据可以使用vuex的store来存储,但是并不是说解决了多次mounted的问题,因为还是上面的解释。
9 回答1.8k 阅读✓ 已解决
6 回答1.8k 阅读
3 回答1.5k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
组件只渲染或处理数据,将数据请求放到store中或者父组件中