это
this.$router.push( {
name: 'ShopProductPage',
params: {
product: JSON.stringify( this.product ),
productId: 1,
},
} )
Потом это
{
...
name: 'ShopProductPage',
props: ( route ) => {
return {
productId: route.params.productId,
productProp: route.params.product ? JSON.parse( route.params.product ) : null
}
}
}
Ну и в компоненте вот это
setProductOnInit () {
if ( this.productProp !== null ) {
return this.productProp
} else if ( this.productId !== null ) {
return this.$store.dispatch( 'product/outFetchProductById', this.productId )
} else {
throw new Error()
}
}
10/10, бесполезный код
потому что ты пытаешься переизобрести “кэширование” костылями через роутер, для чего он, естественно, не предназначен если я перезагружу страничку, то вся вот эта стена проверок развалится и все равно будет сделан новый запрос если у тебя апи не выдерживает лишних запросов, то нужно кэшировать в первую очередь запросы на уровне сервера, а не через клиентский роутер
Обсуждают сегодня