zoukankan      html  css  js  c++  java
  • vue之mixin混入偷懒技术

    mixin分发vue组件中的可复用功能

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>mixin的应用</title>
    </head>
    
    <body>
        <div id='app'>
    
        </div>
        <script src="./vue.js"></script>
        <script>
            //    一个是模态框 一个提示框
            // 它们看起来不一样,用法不一样,但是逻辑一样(切换boolean)
            /* 
            // 全局的mixin 要格外小心 因为每个组件实例创建是,它都会被调用
            Vue.mixin({
    
            })
            
             */
            const toggleShow = {
                data() {
                    return {
                        isShow: false
                    }
                },
                methods: {
                    toggleShow() {
                        this.isShow = !this.isShow
                    }
                }
            }
    
            const Modal = {
                template: `
                    <div v-if='isShow'><h3>模态框组件</h3></div>
                `,
                // 局部的mixin
                mixins: [toggleShow]
    
            }
    
            const ToolTip = {
                template: `
                <div v-if='isShow'>
                    <h2>提示框组件</h2>
                </div>
             `,
                mixins: [toggleShow]
            }
            new Vue({
                el: "#app",
                data: {
    
                },
                components: {
                    Modal,
                    ToolTip
                },
                template: `
                    <div>
                        <button @click='handleModel'>模态框</button>
                        <button @click='handleToolTip'>提示框</button>
                        <Modal ref='modal'></Modal>
                        <ToolTip ref='toolTip'></ToolTip>
                    </div>
                `,
                methods: {
                    handleModel() {
                        this.$refs.modal.toggleShow();
                    },
                    handleToolTip() {
                        this.$refs.toolTip.toggleShow();
                    }
                },
            })
        </script>
    
    </body>
    
    </html>
    

      

  • 相关阅读:
    Lambda表达式
    多态之美
    集合那点事
    程序员艺术家
    MySQL:如何导入导出数据表和如何清空有外建关联的数据表
    Ubuntu修改桌面为Desktop
    shutil.rmtree()
    SCP命令
    kickstart
    数据哈希加盐
  • 原文地址:https://www.cnblogs.com/shannen/p/13968418.html
Copyright © 2011-2022 走看看