剑轩

vue.js组件

电脑版发表于:2020/10/28 10:11


什么是vue组件

可以重复使用vue实例,相当于可以自己定义一个控件,类似mvc里边的分部页用来重复使用的

vue组件语法:

Vue.component('组件名字',{
  data:function()
  {
      return {
          count:1
      }
  },
  template:"组件的定义,组件的内容"
})

这里的data是一个函数而不是一个对象,因为可以让每个对象相互独立,传一个函数vue内部执行以下一样可以返回一个json对象,和单独的vue其实也是一样的,只是每个函数相互独立所以数据也相互独立。这种本来需要返回数据而返回一个函数的在jquery插件的写法还有highchats里边提供初始数据的时候都有用到:
例如highcharts当中的:

series: [{
    name: 'Tokyo',
    data: function () {
        var data = [];
        for (var i = 0; i < 16; i++) {
            var y = Math.round(Math.random() * 10);
            data.push({ x: i, y: y });
        }
        return data;
    }()
}]


vue组件使用:

<组件名字></组件名字>   (当成一个现有的标签去用)



vue组件实例:

定义一个很简单的按钮

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>


<div id="content">
    <count-button></count-button>
    <count-button></count-button>
    <count-button></count-button>
</div>


<script>

    //定义一个vue组件
    Vue.component("count-button", {
        data: function () {
            return {
                count: 1
            }
        },
        template: "<div><button @@click='count++'>你点击了按钮{{count}}次</button></div>",
    });

    //实例化一个vue
    var vm = new Vue({
        el: "#content",
        data: {
            msg: "hello vue.js"
        }
    });

</script>

效果如下:


vue组件中简单实用以下插槽:

插槽类似mvc布局页的挖坑

效果如下:

当然slot可以换位置,可以换到后面去测试以下,或者slot还可以有多个给标识到不同地方


vue组件中事件处理:

如果vue组件中只能有内部的事件,而不是执行外部的事件那么这个组件就很不灵活了,内部的事件相当于是死的功能每个使用组件的都一样

而vue.js组件中使用自定义事件也很简单,使用$emit触发即可。代码如下,这样事件就可以在外部处理了:

然后在使用组件的地方提供事件处理方法即可:




关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢