• Vue组件使用


    一、组件概念

      有html模板,有css样式,有js逻辑的集合体

    每一个组件都是一个vue实例
    每个组件均具有自身的模板template,根组件的模板就是挂载点
    每个组件模板只能拥有一个根标签
    子组件的数据具有作用域,以达到组件的复用

     

    1、根组件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>模板</title>
    </head>
    <body>
    <div id="app">
        <h1>组件概念</h1>
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        // 组件:有html模板,有css样式,有js逻辑的集合体
        // 根组件的模板就使用挂载点,子组件必须自己定义template(局部子组件, 全局子组件)
        new Vue({
            el: '#app',
            template: `
                        <div>
                            <h1 style="color:red;">组件渲染的模板</h1>
                            <h2 @click="action">副标题</h2>
                        </div>
                       `,
            data: {
    
            },
            methods: {
                action: function () {
                    alert(123)
                }
            }
        })
    </script>
    </html>
    View Code

     

    2、局部组件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>模板</title>
    </head>
    <body>
    <div id="app">
        <abc></abc>
        <abc></abc>
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        // 定义局部组件
        let localTag = {
            // data要达到组件的复用,必须为每个组件提供一个名称空间(作用域)
            // data的值就是一个存放数据的字典
            // 需要满足以上两个条件,data值为一个可以产生名称空间的函数的返回值,返回值是字典
            data: function () {
                return {
                    count: 0
                }
            },
            template: `
                    <div class="box" style="border:solid;300px">
                        <h1>局部组件</h1>
                        <p class="p1">文本内容</p>
                        <p @click="action" class="p2" style="background:yellow">被点击了{{ count }}次</p>
                    </div>
                    `,
            methods: {
                action: function () {
                    this.count++
                }
            }
        };
        new Vue({
            el: '#app',
            data: {
    
            },
            // 注册组件
            components: {
                'abc': localTag
            }
        })
    </script>
    </html>
    View Code

     

    3、全局组件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>模板</title>
    </head>
    <body>
    <div id="app">
        <!--在标签中建议使用 - 语法命名,对应js中就是驼峰命名-->
        <old-boy></old-boy>
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        // 创建一个全局组件
        // Vue.component(组件名, {组件主体})
        Vue.component('OldBoy', {
            data: function(){
                return {
                    count: 0
                }
            },
            template: `
                <div class="box" style="border:solid;300px">
                    <h1>全局组件</h1>
                    <p class="p1">文本内容</p>
                    <p @click="action" class="p2" style="background:yellow">被点击了{{ count }}次</p>
                </div>
                `,
            methods: {
                action: function () {
                    this.count++
                }
            }
        });
    
        // 全局组件无需注册
        new Vue({
            el: '#app',
            data: {
    
            }
        })
    </script>
    </html>
    View Code

  • 相关阅读:
    Code基础——2.排序
    设计模式——4.装饰模式
    Shader笔记——1.光照基础
    C#笔记——7.序列化与反序列化
    C#笔记——6.反射与特性
    lua小技巧记录--新建对象时重置元表
    发现的lua小技巧记录--在:方法中使用self的技巧
    lua版pureMVC框架使用分析
    在xlua中使用DoTween动画插件
    Unity工程性能优化学习笔记
  • 原文地址:https://www.cnblogs.com/zhangguosheng1121/p/11099800.html
Copyright © 2020-2023  润新知