zoukankan      html  css  js  c++  java
  • vue 控件component

    <html>
        <head>
            <title></title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
           <script>
           window.onload=function(){
               //组件
               var myComp = Vue.extend({
                   //模板:必须有一个根节点、
                   template:'<h1>hello comPonent</h1>'
               })
               //规范命名 连接符 -
               Vue.component('hello',myComp);
               //方式二:
               Vue.component('my-component',{
                   template:'<h2>张。。。</h2>'
               })
               new Vue({
                el: "#app",     
                data: {
                    flag: 'my-tr',
                    flag2: 'my-chenge1',
                },
                components:{
                    'my-address': {
                        template:'<h2>张。。。</h2>'
                    },
                    'my-address2': {
                        template:"#myAddress2",
                        data:function(){
                            return {
                                title: "title",
                                list:[1,2,3,4]
                            }
                        }
                    },
                    'my-tab': {
                        template :"#myAddress3",
                        data:function(){
                            return {
                                tabtitil: ['标题一','标题二','标题三',],
                                tabContent: ['a','b','c'],
                                cur2: 1,
                            }
                        }
                    },
                    'my-tr':{
                        template :'#myAddress4'
                    },
                    'my-slot':{
                        template : '#myAddress5'
                    },
                    'my-chenge1':{
                        template:'<h1>{{x}}</h1>',
                        data:function(){
                            return {
                                x: Math.random()
                            }
                        }
                    },
                    'my-chenge2':{
                        template:'<h3>{{x}}</h3>',
                        data:function(){
                            return {
                                x: Math.random()
                            }
                        }
                    }
                }
             })
           }
           </script>
           <style>
                ul,li {
                    padding: 0;margin: 0
                }
                .tab-tit li {
                    padding: 10px 15px;
                    text-align: center;
                    list-style: none;
                    cursor: pointer;
                    display: inline-block;
                }
                .tab-con li {
                    padding: 10px 15px;
                    text-align: center;
                    list-style: none;
                    cursor: pointer;
                    display: inline-block;
                }
            </style>
            <template id="myaddress2">
                <div>
                    <p>{{title}}</p>
                    <ul>
                        <li v-for="(v,i) in list">{{v}}</li>
                    </ul>
                </div>
            </template>
            <template id="myAddress3">
                 <div>
                    <ul class="tab-tit">
                        <li v-for="(v,i) in tabtitil" @click="cur2=i" :class="{active:cur2==i}">{{v}}</li>
                    </ul>
                    <ul class="tab-con">
                        <li v-for="(v,i) in tabContent" v-show="cur2===i">{{v}}</li>
                    </ul>
                </div>
            </template>
            <template id="myAddress4">
                <div>
                    <tr>
                        <li>vvvvv</li>
                    </tr>
                </div>
            </template>
            <template id="myAddress5">
                <div>
                    <p>my slot</p>
                    <slot name="s2"></slot>
                    <p>张。。。</p>
                    <slot name="s2"></slot>
                </div>
            </template>
        </head>
    
        <body>
            <div id="app">
               <hello></hello>
               <my-component> </my-component>
               <my-address></my-address>
               <my-address2></my-address2>
               <my-tab></my-tab>
               <!-- 组件的高级用法 -->
                <table border="2" padding = "100px">
                    <!-- <my-tr></my-tr> -->
                    <tr is="my-tr"></tr>
                </table>
                <!-- 插槽 -->
                <!-- 设计模式:模板模式 -->
                <my-slot>
                    <ul slot="s1">
                        <li>asccc</li>
                    </ul>
                    <ul slot="s2">
                            <li>asccc</li>
                        </ul>
                </my-slot>
                <!-- 动态组件 -->
                <button @click="flag='my-tab'">my-tab</button>
                <button @click="flag='my-tr'">my-tr</button>
                <!-- is   data变量 -->
                <componet :is="flag"></componet>
                
                <!-- 状态 my-chenge1 -->
                <!-- 动态组件 -->
                <button @click="flag2='my-chenge1'">my-chenge1</button>
                <button @click="flag2='my-chenge2'">my-chenge2</button>
                <!-- is   data变量 -->
                <!-- <componet :is="flag2"></componet> -->
    
                <!-- 切换组建状态不变 缓存非活动组件 -->
                <keep-alive>
                    <component :is="flag2"></component>
                </keep-alive>
            </div>
        </body>
    </html>
    

      

    <html>
    <head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
    window.onload=function(){
    //组件
    var myComp = Vue.extend({
    //模板:必须有一个根节点、
    template:'<h1>hello comPonent</h1>'
    })
    //规范命名 连接符 -
    Vue.component('hello',myComp);
    //方式二:
    Vue.component('my-component',{
    template:'<h2>张。。。</h2>'
    })
    new Vue({
    el: "#app",
    data: {
    flag: 'my-tr',
    flag2: 'my-chenge1',
    },
    components:{
    'my-address': {
    template:'<h2>张。。。</h2>'
    },
    'my-address2': {
    template:"#myAddress2",
    data:function(){
    return {
    title: "title",
    list:[1,2,3,4]
    }
    }
    },
    'my-tab': {
    template :"#myAddress3",
    data:function(){
    return {
    tabtitil: ['标题一','标题二','标题三',],
    tabContent: ['a','b','c'],
    cur2: 1,
    }
    }
    },
    'my-tr':{
    template :'#myAddress4'
    },
    'my-slot':{
    template : '#myAddress5'
    },
    'my-chenge1':{
    template:'<h1>{{x}}</h1>',
    data:function(){
    return {
    x: Math.random()
    }
    }
    },
    'my-chenge2':{
    template:'<h3>{{x}}</h3>',
    data:function(){
    return {
    x: Math.random()
    }
    }
    }
    }
    })
    }
    </script>
    <style>
    ul,li {
    padding: 0;margin: 0
    }
    .tab-tit li {
    padding: 10px 15px;
    text-align: center;
    list-style: none;
    cursor: pointer;
    display: inline-block;
    }
    .tab-con li {
    padding: 10px 15px;
    text-align: center;
    list-style: none;
    cursor: pointer;
    display: inline-block;
    }
    </style>
    <template id="myaddress2">
    <div>
    <p>{{title}}</p>
    <ul>
    <li v-for="(v,i) in list">{{v}}</li>
    </ul>
    </div>
    </template>
    <template id="myAddress3">
    <div>
    <ul class="tab-tit">
    <li v-for="(v,i) in tabtitil" @click="cur2=i" :class="{active:cur2==i}">{{v}}</li>
    </ul>
    <ul class="tab-con">
    <li v-for="(v,i) in tabContent" v-show="cur2===i">{{v}}</li>
    </ul>
    </div>
    </template>
    <template id="myAddress4">
    <div>
    <tr>
    <li>vvvvv</li>
    </tr>
    </div>
    </template>
    <template id="myAddress5">
    <div>
    <p>my slot</p>
    <slot name="s2"></slot>
    <p>张。。。</p>
    <slot name="s2"></slot>
    </div>
    </template>
    </head>

    <body>
    <div id="app">
    <hello></hello>
    <my-component> </my-component>
    <my-address></my-address>
    <my-address2></my-address2>
    <my-tab></my-tab>
    <!-- 组件的高级用法 -->
    <table border="2" padding = "100px">
    <!-- <my-tr></my-tr> -->
    <tr is="my-tr"></tr>
    </table>
    <!-- 插槽 -->
    <!-- 设计模式:模板模式 -->
    <my-slot>
    <ul slot="s1">
    <li>asccc</li>
    </ul>
    <ul slot="s2">
    <li>asccc</li>
    </ul>
    </my-slot>
    <!-- 动态组件 -->
    <button @click="flag='my-tab'">my-tab</button>
    <button @click="flag='my-tr'">my-tr</button>
    <!-- is data变量 -->
    <componet :is="flag"></componet>
     
    <!-- 状态 my-chenge1 -->
    <!-- 动态组件 -->
    <button @click="flag2='my-chenge1'">my-chenge1</button>
    <button @click="flag2='my-chenge2'">my-chenge2</button>
    <!-- is data变量 -->
    <!-- <componet :is="flag2"></componet> -->

    <!-- 切换组建状态不变 缓存非活动组件 -->
    <keep-alive>
    <component :is="flag2"></component>
    </keep-alive>
    </div>
    </body>
    </html>
  • 相关阅读:
    SQL关键字的执行顺序
    StructuredStreaming基础操作和窗口操作
    StructuredStreaming简单的例子(NewAPI)
    StructuredStreaming(New)
    StructuredStreaming编程模型
    SparkStreaming简单例子(oldAPI)
    SparkStreaming架构
    Storm与SparkStreaming对比
    SparkStreaming-DStream(Discretized Stream)
    史上最全的java随机数生成算法分享(转)
  • 原文地址:https://www.cnblogs.com/otways/p/11372299.html
Copyright © 2011-2022 走看看