前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue.js组件初探

vue.js组件初探

作者头像
章鱼喵
发布2018-08-02 15:21:16
2.7K0
发布2018-08-02 15:21:16
举报
文章被收录于专栏:coding

组件的作用

vue.js组件的作用:拆分功能,便于复用。

组件化与模块化的区别:

  • 模块化:从代码逻辑的角度进行划分,每个功能模块的职能单一
  • 组件化:从UI界面的角度进行划分,便于UI的复用

一个页面的ui可以切割成由不同的组件构成,这些组件毕竟独立,这样拆分的好处在于可以做到如同堆积木般快速将页面搭建及重构

全局定义组件

  • 使用Vue.extend配合Vue.component方法

创建组件

代码语言:javascript
复制
Vue.component('test-component', Vue.extend({
    template: '<h3 class="text-center text-success">这是一个由Vue.extend创建的组件</h3>'
}));

页面中引用组件

代码语言:javascript
复制
<div id="app">
    <test-component></test-component>
</div>

具体代码

组件

  • 直接使用Vue.component
代码语言:javascript
复制
Vue.component('test-component', {
    template: '<h3 class="text-center text-danger">这是一个由Vue.component创建出来的组件</h3>'
});

具体代码

  • 使用template标签定义组件

定义两个组件

代码语言:javascript
复制
<template id="tmp1">
    <h3 class="text-center text-warning">这是通过 template 元素定义的组件结构, 这是一个全局组件,可用于各个vue实例中</h3>
</template>

<template id="tmp2">
    <h3 class="text-center text-info">这是一个私有的组件,只能用于特定的vue实例</h3>
</template>

将两个组件分别定义为全局组件和局部私有组件

全局组件

代码语言:javascript
复制
Vue.component('test-component', {
    template: '#tmp1'
});

局部组件

代码语言:javascript
复制
let vm2 = new Vue({
    el: "#app2",
    data: {},
    components: { // 定义私有组件
        'private-component': {
            template: "#tmp2"
        }
    }
})

具体代码

全局组件与局部组件

组件中定义数据

定义数据

代码语言:javascript
复制
Vue.component('test', {
    template: '#tmp',
    data: function () { // 必须用function返回一个对象
        return {
            msg: '我是组件中data定义的数组,我狂得很'
        }
    }
});

显示数据

代码语言:javascript
复制
<template id="tmp">
    <h3 class="text-center text-success">{{ msg }}</h3>
</template>

具体代码

组件定义数据

案例:制作一个计数器

计数器组件的功能

代码语言:javascript
复制
Vue.component('counter', {
    template: '#tmp',
    data: function () {
        return { count: 0}
    },
    methods: {
        increment() {
            this.count++;
        }
    }
});

计数器样式

代码语言:javascript
复制
<template id="tmp">
    <div>
        <button class="btn btn-success" @click="increment">计数器</button>
        <h3>{{ count }}</h3>
    </div>
</template>

多次调用计数器

代码语言:javascript
复制
<div id="app">
    <counter></counter>
    <counter></counter>
    <counter></counter>
</div>

具体代码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件的作用
  • 全局定义组件
  • 组件中定义数据
  • 案例:制作一个计数器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档