31_混合组件(mixins)

2018-02-13  本文已影响0人  CHENPEIHUANG

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
            <home></home>
            <about></about>
        </div>
        
        <script type="text/javascript" src="js/vue.js" ></script>
        <script>
            //定义通用的混合对象,然后将通用的对象混合到组件中,这样组件就不需要重复定义通用部分,可以达到很好复用
            var minx={
                created(){
                    console.log('created ....hello....');
                },
                data(){
                    return {
                        msg:'hello'
                    }
                },
                methods:{
                    show(){
                        alert('aaaaa')
                    }
                }
            }
            
            //如果多个组件具有相同的数据或方法,可以将共有的部分抽取到混合对象,然后通过混合属性mixins将共有的数据或方法混合到指定组件中
            //这样多个组件不需要重复定义相同的数据或方法
            const Home={
                template:'<div><h1 @click="show">主页。。。</h1><p>11111<input type="text"/>{{msg}}</p></div>',
                mixins:[minx]       //在组件中使用混合对象,将通用功能混合到当前组件
            }
            const About={
                template:"<div><h2>关于</h2><p @click='show'>222222<input type='text'/>{{msg}}</p></div>",
                mixins:[minx],
                //如果混合对象中和组件内部定义了相同名称的方法或数据,以组件内部为准
                created(){          
                    console.log('about created......');
                },
                data(){
                    return {
                        name:'zhangsan',
                        msg:'lisi'
                    }
                }
            }
            var vm=new Vue({
                el:"#app",
                components:{
                    'home':Home,
                    'about':About
                },
                data:{
                    which:'home'
                }
            })
            
        </script>
    </body>
</html>

上一篇下一篇

猜你喜欢

热点阅读