为什么浏览器的后退按钮弄乱了我的Vue组件?

时间:2018-11-26 16:06:36

标签: vue.js vue-component vue-router css-grid back-button

所以我有一个vue组件(在我的应用中第一个看到的组件,称为Intro.Vue),它看起来像这样:my Intro.vue component

当我单击橙色按钮转到另一个组件时,一切似乎正常。 但是,当我按浏览器的后退按钮返回到我的Intro.vue组件时,一切都混乱了,看起来像这样: Intro.vue after back button is clicked

对这里可能发生的事情有任何想法吗?

我正在使用CSS网格来布局应用。

我的代码:

<template>
<div class="my-container">
    <div class="text1">{{frase_inicial}}</div>
    <div class="my-video">
        <div id="my-video">
            <h1>Video explicativo</h1>
        </div>
    </div>

    <div class="go-button">
        <router-link to="/crear">
        <img id="go-button" src="src/assets/comenzar-button.svg">
        </router-link>
    </div>

    <div class="text2">{{que_es}}</div>

    <div class="text3">{{expl_mixmatch}}</div>
</div>
</template>

<script>
export default {
  name:'intro',  
  data () {
    return {
    frase_inicial: '¿Quieres diseñar un peluche muy original?',
    que_es: '¿Qué es Mix&Match?',
    expl_mixmatch: 'Mix&Match es el juego que permite a los niños armar sus propios peluches Monomono y darles un nombre original que llevarán bordado. ¡Con imaginación, libertad y alegría!'
    }
  }
}
</script>

<style lang="scss">
@import url('https://fonts.googleapis.com/css?family=Raleway');
html{
    font-family: 'Raleway';
}

.my-container{
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: auto auto auto auto auto;
    grid-template-areas: "text1" "my-video" "go-button" "text2" "text3";

}

.text1{
    grid-area: text1;
    text-align: center;
    font-weight: bold;
    font-size: 3em;
    color: white;
    margin-top: 1em;
}
.my-video{
    grid-area: my-video;
    text-align: center;
    font-size: 2em;
    margin-top: 1em;
    display: grid;
    grid-template-columns: 100%;

}
#my-video{
   background: white;
   width: 640px;
   height: 480px;
   justify-self: center;
}

.go-button{
    grid-area: go-button;
    text-align: center;
    font-size: 2em;
    margin-top: 1em;
}

#go-button{
    height: 150px;
    width: 150px;
}

.text2{
    grid-area: text2;
    text-align: left;
    font-size: 2em;
    font-weight: bold;
    color: white;
    margin-top: 1em;
    margin-left: 1em;

}
.text3{
    grid-area: text3;
    text-align: left;
    font-size: 1.8em;
    margin-top: 1em; 
    color: white;
    margin-left: 1em;
    margin-bottom: 3em;
}

</style>

1 个答案:

答案 0 :(得分:0)

问题是我有一个A.vue组件,它的CSS类名与B.vue路由的A相同,在A中我没有声明Scoped的样式,因此使用的是B样式,它会在屏幕上产生混乱的东西。