Vue mixin

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="app1">
        <h1>{{msg}}</h1>
        <h1>{{this.$options.age}}</h1>
    </div>
    <p>----------------------------</p>
    <div id="app2">
        <h1>{{msg}}</h1>
    </div>
    <script src="js/vue.3.2.2.js"></script>
    <script>
        //定义一个mixin对象
        const myMixin = {
            data(){//定义数据
                return {
                    msg:'你好!'
                }
            },
            methods:{
                hello(){
                    console.log("hello");
                }
            },
            mounted(){
                console.log("mounted");
            },
            age:100
        };
        // 1、创建Vue的实例对象
        const app1 = Vue.createApp({
            data(){//定义数据
                return {
                    msg:'你好1!'
                }
            },
            methods:{
                hello(){
                    console.log("hello1");
                }
            },
            mixins:[myMixin],
            age:99,
            mounted(){
                console.log("mounted1"+this.$options);
            }
        });
        //通过配置决定使用哪个属性
        app1.config.optionMergeStrategies.age = (mixinVal,appValue)=>{
            return mixinVal || appValue;
        }
        app1.mount('#app1');

        const app2 = Vue.createApp({
            // mixins:[myMixin]
        });
        app2.mixin({
            data(){//定义数据
                return {
                    msg:'你好2!'
                }
            },
            methods:{
                hello(){
                    console.log("hello");
                }
            },
            mounted(){
                console.log("mounted");
            },
            age:100
        });
        app2.mount('#app2');

    </script>
</body>
</html>

 

posted @ 2021-08-25 15:13  残星  阅读(25)  评论(0编辑  收藏  举报