Vue学习(三)组件开发

一、步骤一:组件的构建(组件的命名用驼峰命名法,或者短横线分隔命名)

     方法一:extend构建

使用Vue构造器,创建一个“子类”,参数是一个包含组件选项的对象,其中,data选项中必须是函数

  var author = Vue.extend({

       template: "<p><a :href='url'>{{author}}</a></p>",
      data : function() {
      return {
          author : 'vamous',
          url : 'http://blog.csdn.net/Dear_Mr/article/details/72614370'
       }
     }
 });

     方法二:template标签构建法

     template标签构建,需在标签上加id属性用以后期注册

<template id="myCom">
    <div>这是template标签构建的组件</div>

</template>

   方法三:template标签构建法(可以把组件作为单独的一个*.vue文件存放,用时用import引入)


<template>

    <div>这是template标签构建的组件</div>

</template>

<script>
    import bus from '../common/bus';
    export default {
        data() {
            return {
                collapse: false,
                fullscreen: false,
                name: 'linxin',
                message: 2
            }
        },
        computed:{
            username(){
                let username = localStorage.getItem('ms_username');
                return username ? username : this.name;
            }
        },
        methods:{
            // 用户名下拉菜单选择事件
            handleCommand(command) {
                if(command == 'loginout'){
                    localStorage.removeItem('ms_username')
                    this.$router.push('/login');
                }
            }
        }
    }
</script>

二、步骤二:组件的注册

(1)全局注册

一次注册,可在多个vue实例中使用,需调用Vue.component()方法,这个方法需传2个参数,第一个参数为组件名称,第二个参数为组件构造时定义的变量。

我们先用全局注册注册上面例子中创建的myCom组件

Vue.component('my-com',myCom)

还有一种不需构建直接注册的写法——注册语法糖

Vue.component('my-com',{
    'template':'<div>这是我的组件</div>'
})

'my-com'为给组件自定义的名字,在使用时会用到,后面myCom对应的就是上面构建的组件变量。

    注意命名规范,一般组件名字以短横线分隔或一个小写单词。
    例:footer-nav,footernav

如果是用template及script标签构建的组件,第二个参数就改为它们标签上的id值

Vue.component('my-com',{
    template: '#myCom'
})

(2)局部注册

只能在注册该组件的实例中使用

var app = new Vue({
    el: '#app',
    components: {
        'my-com': myCom
    }
})

注册语法糖

var app = new Vue({
    el: '#app',
    components: {
        'my-com': {
           template: '<div>这是我的组件</div>'
        }
    }
})

template及script构建的组件

var app = new Vue({
    el: '#app',
    components: {
        'my-com': {
           template: '#myCom'
        }
    }
})

三、步骤三:组件的使用

我们只需在需要调用组件的地方写上组件名字的标签即可

<div>
    /*调用组件*/
    <my-com></my-com>
</div>

猜你喜欢

转载自blog.csdn.net/zhongzk69/article/details/80927769