zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    H5本地存储技术和微信小程序中的本地存储
    CVE-2019-0708漏洞利用
    微信小程序入门到实战(1)-基础知识
    Nuxt.js打造旅游网站第3篇_登录页面的编写
    Nuxt.js打造旅游网站第2篇_首页开发
    vuex之仓库数据的设置与获取
    axios细节之绑定到原型和axios的defaults的配置属性
    Nuxt.js打造旅游网站第1篇_项目环境搭建
    mongdb数据中文文档
    关于通过linux访问windows执行windows环境下的Python文件的相关操作。
  • 原文地址:https://www.cnblogs.com/zhangguosheng1121/p/11099800.html
Copyright © 2011-2022 走看看