组件什么是组件?组件是Vue.js最强大的特性之一。组件可以扩展HTML元素,封装可重用代码。在高层次上,组件是Vue.js的编译器添加特殊功能的自定义元素。在某些情况下,组件也可以显示为使用is属性扩展的本机HTML元素。还可以分为:结构化HTML带样式CSS带交互(效果)行为信号量存储数据系统组件

组件什么是组件?组件是Vue.js最强大的特性之一。组件可以扩展HTML元素,封装可重用代码。在高层次上,组件是Vue.js的编译器添加特殊功能的自定义元素。在某些情况下,组件也可以显示为使用is属性扩展的本机HTML元素。还可以分为:结构化HTML带样式CSS带交互(效果)行为信号量存储数据系统组件自定义组件!'}varvm=newVue({el:"#app",components:{//Child只会在父组件模板Child中可用}})这种封装也适用于其他可注册的Vue特性,比如指令。组件树页面上的所有内容都是一个组件:形成一个组件树//headcomponentvarAppHead={template:`apphead`};//主窗口单元组件varAppMainUnit={template:`appmainunit`}//主窗口组件varAppMain={template:`appmain`,components:{AppMainUnit}}//侧边栏单元组件varAppSideUnit={template:`appsideunit`}//侧边栏组件varAppSide={template:`应用端`,components:{AppSideUnit}}//根组件varvm=newVue({el:"#app",components:{AppHead,AppMain,AppSide}})组件数据子组件和根组件使用数据的方式不同根组件数据:varvm=newVue({el:"#app",data:{msg:''},components:{MyLi}}){{msg}}调用msg子组件data:varMyLi={//然后Vue会停止运行并在控制台发出警告,告诉你组件中有数据instance必须是一个函数data(){console.log(1);return{counter:0}},template:``}//根组件varvm=newVue({el:"#app",data:{msg:'123'},components:{MyLi}}){{initCounter}}{{childCounter}}`,props:['initCounter'],data(){//保存初始值到childCounter并返回,改变的是当前childCounter的值return{childCounter:this.initCounter}}}varvm=newVue({el:"#app",data:{counter:0},components:{Child}})在html中调用:{{size}}{{normalSize}}`,props:['size'],computed:{normalSize(){returnthis.size.trim().toLowerCase();}}}varvm=newVue({el:"#app",data:{parentSize:'THREE'},components:{Child}})在html中调用:{{pa}}{{pb}}{{pc}}{{pd}}{{pe}}{{pf}}`,props:{pa:Number,pb:[String,Number],pc:{type:Number,required:true//required},pd:{类型:Number,default:100//默认值},pe:{type:Object,default:function(){return{hello:"world"}}},pf:{type:Number,validator:function(v){returnv>100}//自定义属性判断}}}varvm=newVue({el:"#app",data:{pa:2,pb:"abc",pc:2,pd:50,pe:{},pf:120},components:{Child}})用于html: