Component标签

简介: Component标签

标签是Vue框架自定义的标签,它的用途就是可以动态绑定我们的组件,根据数据的不同更换不同的组件。


1.我们先在构造器外部定义三个不同的组件,分别是componentA,componentBcomponentC

var componentA={
     template:`<div>I'm componentA</div>`
}
 var componentB={
      template:`<div>I'm componentB</div>`
}
var componentC={
    template:`<div>I'm componentC</div>`
}


2.我们在构造器的components选项里加入这三个组件。

components:{
    "componentA":componentA,
    "componentB":componentB,
    "componentC":componentC,
}


3.我们在html里插入component标签,并绑定who数据,根据who的值不同,调用不同的组件。

<component v-bind:is="who"></component>


这就是我们的组件标签的基本用法。我们提高一下,给页面加个按钮,每点一下更换一个组件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>component-4</title>
</head>
<body>
    <h1>component-4</h1>
    <hr>
    <div id="app">
       <component v-bind:is="who"></component>
       <button @click="changeComponent">changeComponent</button>
    </div>
    <script type="text/javascript">
        var componentA={
            template:`<div style="color:red;">I'm componentA</div>`
        }
        var componentB={
            template:`<div style="color:green;">I'm componentB</div>`
        }
        var componentC={
            template:`<div style="color:pink;">I'm componentC</div>`
        }
        var app=new Vue({
            el:'#app',
            data:{
                who:'componentA'
            },
            components:{
                "componentA":componentA,
                "componentB":componentB,
                "componentC":componentC,
            },
            methods:{
                changeComponent:function(){
                    if(this.who=='componentA'){
                        this.who='componentB';
                    }else if(this.who=='componentB'){
                        this.who='componentC';
                    }else{
                        this.who='componentA';
                    }
                }
            }
        })
    </script>
</body>
</html>


目录
相关文章
|
6月前
|
前端开发 开发者
类组件(Class component)和 函数式组件(Functional component) 之间有何区别?
类组件(Class component)和 函数式组件(Functional component) 之间有何区别?
95 0
|
3月前
|
JavaScript
Vue3标签(Tag)
这是一个Vue组件`Tag.vue`,提供了多样化的标签展示功能。支持设置标签颜色、尺寸、图标、边框等样式,并可实现标签的动态添加与删除。
Vue3标签(Tag)
|
5月前
|
设计模式 前端开发 JavaScript
约束性组件( controlled component)与非约束性组件( uncontrolled component)
约束性组件( controlled component)与非约束性组件( uncontrolled component)
|
6月前
|
JavaScript 前端开发 程序员
功能组件( Functional Component )与类组件( Class Component )如何选择?
功能组件( Functional Component )与类组件( Class Component )如何选择?
38 0
|
6月前
|
移动开发 JavaScript 小程序
uView Tag 标签
uView Tag 标签
67 1
|
小程序
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
832 0
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
|
前端开发 JavaScript 开发者
组件中 style 标签 lang 属性和 scoped 属性的介绍| 学习笔记
快速学习组件中 style 标签 lang 属性和 scoped 属性的介绍
组件中 style 标签 lang 属性和 scoped 属性的介绍| 学习笔记