почему компонент исчезает, когда я меняю вкладку? - PullRequest
0 голосов
/ 23 апреля 2019

В моем проекте laravel я использовал Vuejs и Vuex. Когда страница загружается или обновляется, компонент отображается, но когда я меняю вкладку и переходу на предыдущую вкладку, компонент исчезает. И когда я перехожу на следующую страницу и возвращаюсь назад, все в порядке.

below is component featured.vue

<template>
<div class="featured_slider slider">
<h4>featured</h4>
<div class="featured_slider_item" v-for="product in getFeaturedProducts">
<div class="border_active"></div>
<div class="product_item discount d-flex flex-column align-items-center 
justify-content-center text-center">
<div class="product_image d-flex flex-column align-items-center justify- 
content-center">
<img :src="'/Uploads/Products/'+product.id+'/cropped_'+product.image.name" 
:alt="product.image.name"></div>
<div class="product_content">
<div class="product_price discount">Rs.{{product.price_old}}<span>Rs. 
{{product.price_new}}</span></div>
<div class="product_name">
<div><a href="#">{{product.title}}</a></div>`
</div>
<div class="product_extras">
<div class="product_color">
<input type="radio" checked 
name="product_color"style="background:#b19c83">
<input type="radio" name="product_color"
style="background:#000000">
<input type="radio" name="product_color"
style="background:#999999">
</div>
<button class="product_cart_button">Add to Cart</button>
</div>
</div>
<div class="product_fav"><i class="fas fa-heart"></i></div>
<ul class="product_marks">
<li class="product_mark product_discount">-25%</li>
<li class="product_mark product_new">new</li>
</ul>
</div>
</div>
</div>
</template>

<script>
export default {
data(){
return{
products:[]
}
},
computed:{
getFeaturedProducts(){
return this.$store.getters.featuredProducts;
}
},
created() {
return this.$store.dispatch('featuredProducts');
}
}
</script>

ниже - это state.js

export default {
featuredProducts:[],
onSale:[]
}

ниже - getters.js

export const featuredProducts= state =>{
//console.log(state);
return state.featuredProducts
};

export const onSale= state =>{
//console.log(state);
return state.onSale
};

ниже - мутации.js

export const featuredProducts=(state,responseData)=>{
state.featuredProducts=responseData;
// console.log(responseData)
};

export const onSale=(state,responseData)=>{
state.onSale=responseData;
// console.log(responseData)
};

ниже action.js

import {sendGet} from "../../../utils/request";
export const featuredProducts =context=>{
sendGet('/product/products').then(response=>{
context.commit('featuredProducts',response.data.data)
});
};

export const onSale =context=>{
sendGet('/product/onsale').then(response=>{
context.commit('onSale',response.data.data)
});
};

1 Ответ

0 голосов
/ 23 апреля 2019

Учитывая общую структуру файла 'public>js>app.js', app.js которые включают в себя все скомпилированные js, зависимости vue и присоединение экземпляра vue к тело страницы, ваше лезвие, например, index.blade.php у вас может быть что-то вроде: *

<script type="text/javascript" src="js/app.js"></script>

В вашем шаблоне блейда измените его на что-то вроде этого, учитывая такую ​​же структуру файла:

<script type="text/javascript" src="{{url('js')}}/app.js"></script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...