为什么浏览器的后退按钮会弄乱我的 Vue 组件?
why browser's back button messes up my Vue component?
所以我有一个 vue 组件(我在我的应用程序中看到的第一个组件,它叫做 Intro.Vue),它看起来像这样:
当我单击橙色按钮转到另一个组件时,一切似乎都正常。
但是当我按下浏览器的后退按钮 return 到我的 Intro.vue 组件时,一切都乱七八糟,看起来像这样:
知道这里会发生什么吗?
我正在使用 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>
问题是我有一个 A.vue
组件,其名称 CSS class 与从 A
路由的 B.vue
相同,并且在A
我没有在它的样式中声明 Scoped
,所以它使用的是 B
样式,这会在屏幕上生成乱七八糟的东西。
所以我有一个 vue 组件(我在我的应用程序中看到的第一个组件,它叫做 Intro.Vue),它看起来像这样:
当我单击橙色按钮转到另一个组件时,一切似乎都正常。
但是当我按下浏览器的后退按钮 return 到我的 Intro.vue 组件时,一切都乱七八糟,看起来像这样:
知道这里会发生什么吗?
我正在使用 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>
问题是我有一个 A.vue
组件,其名称 CSS class 与从 A
路由的 B.vue
相同,并且在A
我没有在它的样式中声明 Scoped
,所以它使用的是 B
样式,这会在屏幕上生成乱七八糟的东西。