Javascript VueJS和Keep Alive:为什么控制台出现错误?

Javascript VueJS和Keep Alive:为什么控制台出现错误?,javascript,vue.js,vuejs2,vue-router,Javascript,Vue.js,Vuejs2,Vue Router,我有一个名为posts的视图/页面,我想用帖子列表显示它。让我们假设这个页面将包含数千篇文章。因此,我只想加载一次,如果用户导航到应用程序的另一个页面,然后返回到posts页面,我不想进行API调用并再次加载所有帖子 我看到Vue有一个名为的东西,它可以缓存某些路由/组件: 以下是我尝试过的: <keep-alive :include="posts"> <RouterView :key="$route.name" class="pb-5"/> </keep-

我有一个名为
posts
的视图/页面,我想用帖子列表显示它。让我们假设这个页面将包含数千篇文章。因此,我只想加载一次,如果用户导航到应用程序的另一个页面,然后返回到
posts
页面,我不想进行API调用并再次加载所有帖子

我看到Vue有一个名为
的东西,它可以缓存某些路由/组件:

以下是我尝试过的:

<keep-alive :include="posts">
    <RouterView :key="$route.name" class="pb-5"/>
</keep-alive>

不幸的是,我不明白为什么我的演示无法使用它。我得到一个控制台错误,如下所示:

[Vue warn]:属性或方法“posts”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保此属性在数据选项中或对于基于类的组件是被动的。请参阅:

在中找到

--->

您需要从
include
中删除
绑定,否则它将在
应用程序组件中查找名为
posts
的数据属性,而不是文字字符串“posts”


您还需要为
Posts
组件命名为“Posts”,因为
保持活动状态
包含
引用组件名称,而您的组件没有:

导出默认值{

名称:“posts”,//您需要从
include
中删除
绑定,否则它将在
应用程序
组件中查找名为
posts
的数据属性,而不是文字字符串“posts”


您还需要为
Posts
组件命名为“Posts”,因为
保持活动状态
包含
引用组件名称,而您的组件没有:

导出默认值{
名称:“职位”//
found in

---> <App> at /src/App.vue
       <Root>