vue---组件定义1(三种方式创建自定义组件)---component、template

vue中的组件----组件定义

在这里插入图片描述

<title>vue中的组件</title>
    <style>
      .hello {
        border-bottom: solid deeppink 0.05rem;
      }
    </style>
  </head>
  <body>
    <!-- 3️⃣ -->
    <template id="tpl">
      <div>
        <h3>三体人说:</h3>
        <p>不要回复,不要回复,不要回复</p>
      </div>
    </template>
    <div id="app">
      <!-- 1️⃣2️⃣3️⃣ -->
      <!-- 循环生成20遍
      <hello v-for="i in 20" :key="i"></hello> -->
      <hello></hello>
      <xiaoming></xiaoming>
      <santi-ren></santi-ren>
    </div>
    <script src="./libs/vue.js"></script>
    <script>
      // 1️⃣最简单的方式创建一个自定义组件, 局部组件,使用的时候需要进行注册
      var hello = {
        // 表示组件使用的模板内容
        template: `<div class="hello">
            <h1>我是一个自定义组件</h1>
            <button @click="count++">我是一个按钮-{{count}}</button>
            <p>{{msg}}</p>
          </div>`,
        // data表示组件中使用的数据,需要写成一个funciton,返回一个对象作为结果
        /*
        在之前学的vue中,data是个对象,
        而在组件中为什么data必须是一个函数呢?
        因为js里面对象叫做引用赋值
        如果现在把data改成一个对象的形式
        那这个data在组件在复用的时候
        这个data就会出现一种所有被复用被重复使用的组件指向同一个内存空间,当修改一个,所有的都会被改变,但是如果通过function定义的话,function里面又会返回一个新的对象,这个时候每一个组件里的data都是一个唯一的对象,
        */
        data() {
          return {
            msg: "我是一段话",
            count: 1,
          };
        },
      };

      // 2️⃣此种方式定义的组件为全局组件,不需要注册可以直接使用
      //  组件模板只能有一个根节点
      Vue.component("xiaoming", {
        template: "<div><h1>我是小明</h1><p>不要你觉得,我要我绝得</p></div>",
      });

      // 3️⃣
      var santiRen = {
        template: "#tpl", // 使用一个模板html的形式定义组件的模板内容
      };
      // 1️⃣ 3️⃣
      new Vue({
        el: "#app",
        components: {
          // 组件注册,我们定义的局部组件需要注册之后才能使用
          hello, // hello: hello
          santiRen, // 在页面中使用的时候需要把大写字母转成小写,中间使用-分割
        },
      });
    </script>
  </body>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值