VUE(局部组件)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>组件注册-局部组件</title>
  <style>
    .com-a, .com-b, .com-c, .com-e {
      padding: 5px;
      border: 1px solid #000;
    }
  </style>
  <!--  -->
</head>
<body>
  <div id="app">
    <h1>组件注册-局部组件</h1>
    <com-a></com-a>
    <br>
    <com-b></com-b>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
  <script src="components/com-e.js"></script>
  <script>
    Vue.component('com-a', {
      template: `
        <div class="com-a">
          <p>com-a 组件</p>
          <com-b></com-b>
          <!-- 不能直接访问自己的后代(孙子)组件 -->
          <!-- <com-d></com-d> -->
        </div>
      `,
      components: {//局部组件定义关键字
        // key: 组件名称,value:组件选项对象
        comB: {
          template: `
            <div class="com-b">
              <p>com-b 组件</p>
              <p>{{ message }}</p>
              <!-- com-c是全局组件 -->
              <com-c></com-c>
              <com-d></com-d>
            </div>
          `,
          data () {//只能在自己里面使用
            return {
              message: 'com-b message'
            }
          },
          components: {//自己的局部组件只能在自己的父组件使用亲爹才行。
            comD: {
              template: `
                <div class="com-d">
                  <p>com-d 组件</p>
                  <com-e></com-e>
                </div>
              `,
              components: {
                // 局部组件注册
                // comE: { ... }, 
                //这里的comE是用了外部的组件,在另一个js里面
                comE: comE
              }
            }
          }
        }
      }
    })
//全局组件
    Vue.component('com-b', {
      template: `
        <div class="com-b">
          <p>全局的 com-b 组件</p>
        </div>
      `
    })
//全局组件
    Vue.component('com-c', {
      template: `
        <div class="com-c">
          <p>全局的 com-c 组件</p>
        </div>
      `
    })
//vue实例
    const app = new Vue({
      el: '#app',
      data: {},
      methods: {}
    })
    //如果在全局组件里面的用的局部组件注释了,那么会去外边找全局的组件。也就是全局组件可以在任何地方用
  </script>
</body>

</html>



因为comE引入了外部的js,comE.js代码如下
const comE = { 
  template: `
    <div class="com-e">
      <p>com-e 组件</p>
      <p>{{ message }}</p>
    </div>
  `,
  data () {
    return {
      message: 'com-e message'
    }
  }
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值