VueJS 动态内容
VueJS dynamic content
我对 Vue 的世界还很陌生,所以我一直在努力完成手头的任务。
让我解释一下它应该做什么:
所以我们有一个来自我们的 API 的 JSON 结构,我们的想法是创建一个动态的“内容组件”,它将从 JSON 获取数据并告诉组件如何它将构建布局。
我创建了动态组件,可以正确加载来自 API 的结构,如下图所示:
Content diagram
所以假设我们有 2 个部分,一个有一个简单的表单(照片中的左侧部分),另一个部分有一个 “列表组件”,请参见代码:
这是我的“内容组件”:
<template>
<main class="dynamic-component" v-if="structure.view">
<ContentHeader v-if="structure.view.actions" :actions="structure.view.actions"></ContentHeader>
<ContentBody :structure="structure" :key="componentKey" :componentKey="componentKey" @force-render="forceRerender"></ContentBody>
</main>
</template>
“ContentBody”在这里我解析了来自 JSON 的结构,这部分是我使用“列表组件”创建部分的地方:
<template v-if="section.url" v-slot:card-body>
<Content :key="componentKey" :targetPath="section.url">
</Content>
</template>
又调用了父组件(Content),因为Content是我之前说的动态组件,targetPath是从JSON取数据,这是返回数据构建一个“列表组件” ".
像这样:
layout
我的问题是,当 List/Form 组件具有要触发的操作(查看、编辑...)时,我如何才能在组件“内部”触发它们并且 仅呈现 SECTION 而不是整个页面?
我不太明白你的问题,但我想你需要:
动态组件
https://v2.vuejs.org/v2/guide/components-dynamic-async.html
或者带有条件 v-if 的简单调用组件和计算
我对 Vue 的世界还很陌生,所以我一直在努力完成手头的任务。
让我解释一下它应该做什么:
所以我们有一个来自我们的 API 的 JSON 结构,我们的想法是创建一个动态的“内容组件”,它将从 JSON 获取数据并告诉组件如何它将构建布局。
我创建了动态组件,可以正确加载来自 API 的结构,如下图所示:
Content diagram
所以假设我们有 2 个部分,一个有一个简单的表单(照片中的左侧部分),另一个部分有一个 “列表组件”,请参见代码:
这是我的“内容组件”:
<template>
<main class="dynamic-component" v-if="structure.view">
<ContentHeader v-if="structure.view.actions" :actions="structure.view.actions"></ContentHeader>
<ContentBody :structure="structure" :key="componentKey" :componentKey="componentKey" @force-render="forceRerender"></ContentBody>
</main>
</template>
“ContentBody”在这里我解析了来自 JSON 的结构,这部分是我使用“列表组件”创建部分的地方:
<template v-if="section.url" v-slot:card-body>
<Content :key="componentKey" :targetPath="section.url">
</Content>
</template>
又调用了父组件(Content),因为Content是我之前说的动态组件,targetPath是从JSON取数据,这是返回数据构建一个“列表组件” ".
像这样: layout
我的问题是,当 List/Form 组件具有要触发的操作(查看、编辑...)时,我如何才能在组件“内部”触发它们并且 仅呈现 SECTION 而不是整个页面?
我不太明白你的问题,但我想你需要: 动态组件 https://v2.vuejs.org/v2/guide/components-dynamic-async.html
或者带有条件 v-if 的简单调用组件和计算