vue组件创建方式

1,使用Vue.extend来创建全局的Vue组件,返回一个模板对象

var com1=new extend({

   template:'<h3 >这是一个Vue.extend创建的组件</h3>' //通过template,属性,指定了组件要展示的HTML的结构

})

1.2,使用Vue.component("组件的名称",创建出来的组件模板对象)

Vue.component("mycom1",com1)

如果使用Vue.component定义全局组件的时候,组件名臣使用了驼峰命名,则在引用组件的时候,大写的

驼峰命名改为小写的字母,两个单词之间用-链接

Vue.component("mycom1",com1)


Vue.compontent第一个参数是组件的名字,标签形式来引入,第二个参数Vue.extend创建的组件,其中template组件的模板展示的内容

以上可以简写为 Vue.component("mycom1",Vue.extend({

  template:"<h3>顶顶顶</h3>"

}))


第二种组件创建的方式

 Vue.component("mycom2",{

 //注意:不论是哪中方式创建出来的组件。组件的template属性属性指向模板的内容,必须只有一个唯一的跟元素

     template:"<h3>这是使用vue.compontent创建出来的组件</h3>"

 })

使用的时候直接用标签用

<mycom2></mycom2>


第三种组件创建方式

 <template id="temp1">

 <div>

ss

</div>

</template>

Vue.compontent("mycom3"{

 template:”#temp1“

 })


定义私有组件

使用的时候可以这样<login></login>

export default {
name: 'HelloWorld',
components:{
login{
template:"<div>这是login组件</div>"
}
},

还可以这样使用

export default {
name: 'HelloWorld',
components:{
lo:{
template:"#temp"
}
},

<template id="temp"><div>dd55555555</div></template>

在模板中调用<lo></lo>


 组件中的data

组件的data和实例的data有点不一样,实例的data可以作为一个对象,组件的data必须是一个方法

组件中的data内部,还必须返回一个对象才行

组件中的data数据,使用方式和实例中的data使用方式完全一样

Vue.compontent("mycom1",{

 template:"<h1>这是一个全局的组件--{{msg}}</h1>",

data:function(){

 return{

 msg:"这是组件中data定义的数据"

 }

 }

 })


组件切换方式

<a @click.prevent="flag==true">登陆</a>

<a @click.prevent="flag==false">注册</a>

<login v-if="flag"></login>

<rigister v-else="flag"></rigister>

Vue.component("login",{

  template:”<h3>这是登陆组件</h3>“

 })

Vue.compontent("register",{

 template:”<h3>注册组件</h3>“

  })

data:{

flag:true//显示登陆组件

 }


 局部注册一个组件

var login={
template:"<div>j局部是登陆组建</div>"
}
export default {
name: 'hello',
components:{
Childern,
login,
//定义组件
},

最后在模板中适用<login></login>

原文地址:https://www.cnblogs.com/xzhce/p/12906008.html