美文网首页
框架扩展

框架扩展

作者: 九尾的日志 | 来源:发表于2018-08-20 11:42 被阅读0次

    Mixins是对父组件的扩充,Extend扩展组件的构造器

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8">
            <title>扩展</title>
            <script src="vue.js"></script>
        </head>
    
        <body>
    
            <!-- mixins 是对父组件的扩充,包括methods、components、directive等。。。
            触发钩子函数时,先调用mixins的函数,再调用父组件的函数。
            虽然也能在创建mixin时添加data、template属性,但当父组件也拥有此属性时以父为准,
            从这一点也能看出制作者的用心(扩充)。data、methods内函数、components和directives
            等键值对格式的对象均以父组件/实例为准 -->
    
            <!-- extend 扩展组件的构造器,extend创建的是一个组件构造器,而不是一个具体的组件,
                实例最终还是要通过Vue.components注册才可以使用的 -->
    
            <div id="app"></div>
    
            <script>
                
                
                //扩展属性和方法
                Vue.mixin({
    
                    methods: {
    
                        getName: function() {
    
                            return '返回名字'
                        },
    
                        timer: function(sec, back) {
    
                            console.log('计时器启动成功')
                        }
                    }
                })
    
                var vm = new Vue({
    
                    el: '#app',
    
                    created: function() {
    
                        this.timer()  
                    }
                })
                
                
    
                //扩展组件
                var todoWarp = Vue.extend({
                    template: `
                        <ul>
                            <todo-item 
                                v-for="(item, index) in todoData"
                                v-text="item.text"
                            ></todo-item>
                        </ul>
                    `,
                    props: {
                        todoData: {
                            type: Array,
                            default: []
                        }
                    }
                })
    
                // 注册到全局
                Vue.component('todo', todoWarp)
                
                
            </script>
    
        </body>
    </html>
    

    对Vue原型直接进行扩展

    Vue.prototype.$axios = axios;
    

    相关文章

      网友评论

          本文标题:框架扩展

          本文链接:https://www.haomeiwen.com/subject/bnhqiftx.html