Javascript 在Vue中单击“路由页面关于”时,数据正在清除
请帮帮我!我有两页:Javascript 在Vue中单击“路由页面关于”时,数据正在清除,javascript,vue.js,vue-component,vue-router,Javascript,Vue.js,Vue Component,Vue Router,请帮帮我!我有两页:主页,关于和一个组件第二页。此组件有两个包含数据的表,应该显示在关于页面上。但当我导航到About页面时,所有数据都被清除,表格为空。 我试图在我的主页主页中将关于页面中的所有内容显示为关于组件,结果成功了!因此,道具的传递是正确的。 为什么我单击“关于”页面时,表中的所有数据都会消失在该页面中? 我尝试了.prevent,但它没有像我预期的那样工作 关于.vue <template> <div class="about"> <h1&
主页
,关于
和一个组件第二页
。此组件有两个包含数据的表,应该显示在关于
页面上。但当我导航到About
页面时,所有数据都被清除,表格为空。
我试图在我的主页主页中将关于
页面中的所有内容显示为关于
组件,结果成功了!因此,道具的传递是正确的。
为什么我单击“关于”
页面时,表中的所有数据都会消失在该页面中?
我尝试了.prevent
,但它没有像我预期的那样工作
关于.vue
<template>
<div class="about">
<h1>This is an about page</h1>
<SecondPage v-bind:generalQuestInfo="generalQuestInfo" :isActive="isActive" :getIconClass="getIconClass" />
</div>
</template>
<script>
import SecondPage from '../components/SecondPage'
export default {
name: 'About',
components: {
SecondPage
},
props: ["generalQuestInfo", "isActive", "getIconClass"]
}
</script>
Vue文档表明
HTML属性名称不区分大小写,因此浏览器将解释
任何大写字符均为小写。这意味着当你使用
在DOM模板中,camelCased道具名称需要使用其kebab-cased
(以连字符分隔的)等效项:
然后,当你调用他的HTML模板中的某个组件时,你应该在烤肉串中编写道具:
<!-- kebab-case in HTML -->
<blog-post post-title="hello!"></blog-post>
在您的组件上,您必须调用您的道具:
Vue.component('blog-post', {
// camelCase in JavaScript
props: ['postTitle'],
template: '<h3>{{ postTitle }}</h3>'
})
Vue.component('blog-post'{
//JavaScript中的camelCase
道具:['postTitle'],
模板:“{postTitle}}”
})
我用Vuex
添加了store
,这个问题就解决了 请提供SecondPage.vue
和home。您也应该收到此错误-您是否正确注册了组件?对于递归组件,请确保提供“name”选项。
及其名称,因为您使用的是大写字母。。。您需要将
更改为
我添加了一个代码。在Vue中使用大写字母是非常有效的。查看他们的文档中的多个示例:@Joseph我不是在谈论组件的第一个字母。。。一封来自中间的信(在第一封信之后)您可以尝试一下,看看是否没有抛出错误。那么,这对我的代码有什么影响?我没有看到错误,只是数据没有显示在About
页面上。。。
<template>
<div>
<table align="center">
<tr>
<th v-bind:key="data.id" v-for="data in mainPageInfo">{{ data.alias }}</th>
</tr>
<tr>
<td v-bind:key="data.id" v-for="data in mainPageInfo">
<router-link :to="data.status == 'SUCCESS' || data.status == 'CRASH' ? '/about' : '/no-info'"><i v-on:click="$emit('main-handle', data.status)" v-bind:class="data.status == 'SUCCESS' ? 'fas fa-check':
data.status == 'CRASH' ? 'fas fa-times' :
'fas fa-minus'"></i></router-link>
</td>
</tr>
</table>
</div>
</template>
<!-- kebab-case in HTML -->
<blog-post post-title="hello!"></blog-post>
Vue.component('blog-post', {
// camelCase in JavaScript
props: ['postTitle'],
template: '<h3>{{ postTitle }}</h3>'
})