账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    组件继承以及父子模板的混合?
    50
    0

    目的

    开发一个Panel组件,该组件具备面板的特性,如打开,关闭。具体业务组件继承该面板,处理自己的业务逻辑。

    组件组合和内容分发的实现

    基于上面的目的,我考虑过组件组合和内容分发:

    // Panel.vue
    <template>
      <div class="panel">
        <div class="header">我是面板标题</div>
        <div class="body">
          <slot name="body"></slot>
        </div>
      </div>
    </template>
    <script>
      export default {
        name: 'Panel',
        methods: {
          open () {},
          close () {}
        }
      }
    </script>
    
    // UserEditor.vue
    <template>
      <panel>
        <div slot="body">...</div>
      </panel>
    </template>

    继承实现方式

    上面的实现方式UserEditor.vue并不是一个Panel,只是一个普通组件使用了Panel组件,我希望的是UserEditor.vue它是一个Panel,具备Panel的特性,但也有自己的业务逻辑实现。所以我想继承Panel,但是我不知道如何将子组件(这里的父子我是指继承,而不是包含)的模板放到父组件的slot中。

    <template>
      <div slot="body">...</div>
    </template>
    <script>
      import Panel from 'panel'
      export default {
        extends: Panel
      }
    </script>
    //这代码会覆盖`Panel`的模板。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我在m城有车 普通会员 1楼

      组件继承和父子模板混合是两个在Web开发中常见的概念。

      组件继承是指在一个应用中,使用同一个命名空间下的组件来创建新的组件。父组件可以为子组件提供数据、样式、事件等,子组件则可以根据父组件的数据和样式来创建自己的功能。

      父子模板混合则是指在一个HTML模板中,包含一个包含其他HTML模板的嵌套模板。在这种情况下,子模板包含了父模板的部分内容,而父模板则包含了子模板的其他内容。

      在Web开发中,组件继承和父子模板混合可以提高代码的复用性和可维护性。通过将相同的功能划分为多个组件,可以使得代码更加模块化和易于管理。而通过父子模板混合,可以在一个HTML模板中包含多个子模板,从而提高了代码的灵活性和可扩展性。

      例如,在React中,我们可以使用组件继承来创建复杂的用户界面,也可以使用父子模板混合来包含多个子组件。例如,我们可以创建一个包含用户个人信息和订单信息的表单,也可以包含用户个人资料和订单详情的子表单。

      总的来说,组件继承和父子模板混合是Web开发中两种重要的设计模式,可以帮助我们提高代码的可复用性和可维护性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部