Vue自定义组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hellovue</title>
    <script type="text/javascript" src="./js/vue.min.js"></script>
</head>

<body>
    <div id="app">
       <my-button></my-button>
    </div>
</body>
<script>
    //自定义组件
    Vue.component("my-button",{
    data:function(){
        return{
            count:0
        }
    },
    template:"<button @click='count++'>点击了{{count}}次</button>"
   })
    // vue对象实例
    var vm=new Vue({
        el:"#app",
        data:{
        }
    });
</script>
</html>
 //自定义组件
    Vue.component("1.自定义组件名称",{
    data:function(){
        return{
        2.组件数据模型
        }
    },
    template:"3.组件html"
   })

使用的时候使用组件名称作为标签放在父挂在区域中即可

<body>
    <div id="app">
       <my-button></my-button>
    </div>
</body>

当然自定义组件也可以定义方法,但是方法中的data需要使用this来获取。

 //自定义组件
    Vue.component("my-button",{
    data:function(){
        return{
            count:0
        }
    },
    methods:{
        heihei:function(){
            //获取data中的count需要使用this
            this.count++;
        }
    },
    template:"<button @click='heihei'>点击了{{count}}次</button>"
   })

需要注意:

  1. 自定义组件中的数据一定是一个函数
  2. 组件模板里面必须有一个根节点
  3. 如果组件层级结构很多可以使用模板字符串(反引号)
  4. 组件名称建议使用短横线连接 -
 data:function(){
        return{
            count:0
        }
    }

不能有同级别元素,如果有可以使用div当作根节点标签

template:"<button @click='heihei'>点击了{{count}}次</button>"

模板字符串
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值