【发布时间】:2021-12-01 03:15:16
【问题描述】:
我正在从 angularjs 迁移到 Vue。 Angularjs 很好,因为单个控制器可以应用于不同的模板。 因此,使用同一个控制器,我可以通过 list.html 模板或 table.html 模板显示它,并轻松地在相同数据的列表视图或表格视图之间切换。
在 vue 中我需要创建一个使用固定模板的组件。该组件可能有很多业务逻辑,但我希望能够在列表视图或表格视图之间轻松切换。 用 Vue 实现这一目标的正确方法是什么?
谢谢
更新
只是添加一些细节。我目前正在做的只是将两个视图都包含在一个模板中,并带有一些逻辑来确定要显示两者中的哪一个。 这使它更简单,因为我不必复制所有逻辑或方法,我将它们分成两个组件。同时它非常混乱。 这是我正在做的一个粗略示例:
<template>
<div>
<div v-if="showTable">
<table>
<tr><td>Name</td><td>Type</td><td>Actions</td></tr>
<tr v-for="item in items">
<td @click="loadObject(item.Uid)>{{item.Name}}</td>
<td @click="viewType(item.Uid)>{{item.Type}}</td>
<td><span @click="expandOptions(item.Uid)">Expand</span><span @click="analyze(item.Uid)"></span></td>
</tr>
</table>
</div>
<div v-if="showList">
<div v-for="item in items">
<div class="list" @click="loadObject(item.Uid)>{{item.Name}}</div>
<div@click="viewType(item.Uid)>{{item.Type}}</div>
<div><span @click="expandOptions(item.Uid)">Expand</span><span @click="analyze(item.Uid)"></span></div>
</div>
</div>
</div>
</template>
这是我需要的高度简化版本,最终有很多逻辑和方法。通过这种方法,我现在可以在一个组件中拥有所有这些方法和逻辑。但是管理上面的模板就变得很乱了。
有什么建议吗?
【问题讨论】:
标签: angularjs vue.js vue-component