我有一个问题已经在我脑海中盘旋了一段时间。每个创建的组件都应该是可重用的吗?让我们假设我们有一些html,css和JavaScript不能被重用。例如,特定产品的CRUD表(例如用户的CRUD)通过方法和监视器等进行更新。它可以被创建为一个名为UsersTable的组件,但该组件不能被重用,因为它具有通过DB进行用户管理的相关方法。例如,该组件应该在父组件中声明为纯html/css和js,还是应该声明为组件并发出事件以便与父组件通信?
70gysomp1#
为了重用组件,如果我们可以定义一个BaseTable组件,并提供一些选项,那会更好:1.它将是一个Dynamic Component,允许我们指定或确定要渲染的组件。因此,如果我们有两个不同的表模板UserTable.vue和ProducTable.vue,我们可以通过在is指令中传递名称来决定哪个模板将被渲染:
BaseTable
UserTable.vue
ProducTable.vue
is
<component :is=”UserTable”></component>
1.它将使用一些命名插槽定义,然后我们可以确定UserTable和ProductTable中的不同插槽内容:
UserTable
ProductTable
<thead><slot name="thead"></slot></thead>
1.如果表模板是固定的,那么这将是最简单的情况,因为我们可以定义一个包含表的配置(头,列)的对象,然后将此对象作为props传递给BaseTable:
1条答案
按热度按时间70gysomp1#
为了重用组件,如果我们可以定义一个
BaseTable
组件,并提供一些选项,那会更好:1.它将是一个Dynamic Component,允许我们指定或确定要渲染的组件。因此,如果我们有两个不同的表模板
UserTable.vue
和ProducTable.vue
,我们可以通过在is
指令中传递名称来决定哪个模板将被渲染:1.它将使用一些命名插槽定义,然后我们可以确定
UserTable
和ProductTable
中的不同插槽内容:1.如果表模板是固定的,那么这将是最简单的情况,因为我们可以定义一个包含表的配置(头,列)的对象,然后将此对象作为props传递给
BaseTable
: