• Vue 组件与复用


    (1)全局注册

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <my-component>
    
                </my-component>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                //示例前注册
                Vue.component('my-component', {
                    //DOM结构必须被元素包含
                    template: '<div>组件内容</div>'
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

    (2)局部注册

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <my-component>
    
                </my-component>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                var Child = {
                    template: '<div>组件内容</div>'
                }
                new Vue({
                    el: "#app",
                    components: {
                        'my-component': Child
                    }
                })
            </script>
        </body>
    
    </html>

    (3)is挂载组件

    table、ul、ol、select这些标签会限制其内的元素,这时可以使用is来挂载组件

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <table>
                    <tbody is='my-component'>
                    </tbody>
                </table>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                //示例前注册
                Vue.component('my-component', {
                    //DOM结构必须被元素包含
                    template: '<div>组件内容</div>'
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

    (4)组件也可以有data,method,computed等属性。但是data是函数,数据需要return出去。

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <my-component></my-component>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                //示例前注册
                Vue.component('my-component', {
                    //DOM结构必须被元素包含
                    template: '<div>{{message}}</div>',
                    data: function() {
                        return {
                            message: '组件内容'
                        }
                    }
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

    (5)解决多个组件之间数据共享问题

    给组件返回一个新的data对象

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <my-component></my-component>
                <my-component></my-component>
                <my-component></my-component>
                
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                //示例前注册
                Vue.component('my-component', {
                    //DOM结构必须被元素包含
                    template: '<button @click="counter++">{{counter}}</button>',
                    data: function() {
                        return {
                            counter: 0
                        }
                    }
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

     (6)props传递数据、events触发事件和slot内容分发构成Vue组件的3个API来源

  • 相关阅读:
    浅谈系统调用与库函数
    由代码到可执行程序----浅谈程序的编译链接
    初识信号---进程间的交流
    内部排序总结之----选择类排序(选择、堆)
    僵死进程
    父子进程那些事儿
    fok函数
    面试-css样式
    面试-javascript知识
    面试--数据库
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8056865.html
Copyright © 2020-2023  润新知