zoukankan      html  css  js  c++  java
  • Vue自定义事件

    一.Vue的自定义事件:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Vue自定义事件</title>
        </head>
    <body>
        <div id="app">
            <my-btn @total="allCounter()"></my-btn>
            <my-btn @total="allCounter()"></my-btn>
            <my-btn @total="allCounter()"></my-btn>
            <my-btn @total="allCounter()"></my-btn>
            <my-btn @total="allCounter()"></my-btn>
            <my-btn @total="allCounter()"></my-btn>
            <p>一共点击了{{totalCounter}}次</p>
        </div>
    
        <!--定义子组件模版 -->
        <template id="my-btn">
            <button @click="total()">点击了{{counter}}次</button>
        </template>
    
        <script src="js/vue.js"></script>
        <script>
    
            Vue.component('my-btn', {
                template: '#my-btn',
                data() {
                    return {
                        counter: 0
                    }
                },
                methods: {
                    // 每次自增1
                    total() {
                        this.counter += 1;
                        // alert(0);
                        // 通外界调用此方法
                        this.$emit("total");
                    }
                }
            })
            // 创建vue的实例
            let vm = new Vue({
                el: '#app',
                data: {
                    totalCounter: 0
                },
                methods: {
                    allCounter() {
                        this.totalCounter += 1;
                    }
                }
            });
        </script>
    </body>
    </html>

    二 .Vue中的匿名插槽和实名插槽:

    Slot插槽:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Vue的全局组件</title>
        </head>
    <body>
        <div id="app">
            <my-slot>
                <img src="images/3.jpeg" width="200">
            </my-slot>
        </div>
    
        <template id= "my-slot">
            <div id="panel">
                <h2 class="panel-header">插槽的头部</h2>
                <!-- 预留一个插槽 -->
                <slot>可以替换任何标签,如果没有,则显示此提示内容</slot>
                <footer>插槽的尾部</footer>
            </div>
        </template>
    
        <script src="js/vue.js"></script>
        <script>
    
            Vue.component('my-slot', {
                template: '#my-slot',
    
            }) 
    
            // 创建vue的实例
            let vm = new Vue({
                el: '#app',
                data: {
                    name: 'si peng'
                },
            });
        </script>
    </body>
    </html>
    

     实名插槽:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Vue的全局组件</title>
        </head>
    <body>
        <div id="app">
            <my-computer>
                <div slot="cpu">我是CPU</div>
                <img src="images/3.jpeg" width="200">
            </my-computer>
        </div>
    
        <template id= "my-computer">
            <div id="main">
                <slot name="cpu">这里是插CPU的</slot>
                <slot name="gpu">这里是插gpu的</slot>
                <slot name="memory">这里是插内存条的</slot>
                <slot name="hard-drive">这里是插硬盘的</slot>
            </div>
        </template>
    
        <script src="js/vue.js"></script>
        <script>
    
            Vue.component('my-computer', {
                template: '#my-computer',
    
            }) 
    
            // 创建vue的实例
            let vm = new Vue({
                el: '#app',
                data: {
                    name: 'si peng'
                },
            });
        </script>
    </body>
    </html>

    三.Vue.router的使用:

    学习链接:

    https://cn.vuejs.org/v2/guide/

    https://mp.weixin.qq.com/s?__biz=MzIxNjEzNjUzOQ==&mid=502636119&idx=1&sn=1f5a8ce0bda11d9e3458abcb6ae552d1&chksm=0f8c906338fb1975888bca685a9b892dae6ff17811b8b93b388b2cb107a36f42aa27e1282218&mpshare=1&scene=23&srcid=1029I4JE1piCtU8xYCPt5SqA#rd

    视频学习:

    http://study.163.com/course/courseMain.htm?courseId=1004179049

  • 相关阅读:
    XP和Scrum的比较
    让PowerDesigner支持SQLite 3.0[转]
    对于大型公司项目平台选择j2ee的几层认识(一)
    对于大型公司项目平台选择j2ee的几层认识(三)
    Alpha、Beta、RC、GA版本的区别
    如何在XElement中使用XPath
    对于大型公司项目平台选择j2ee的几层认识(四)
    Thread与BeginInvoke
    对于大型公司项目平台选择j2ee的几层认识(二)
    修复VS 2010的Help Library管理器
  • 原文地址:https://www.cnblogs.com/pengsi/p/7786522.html
Copyright © 2011-2022 走看看