vue组件:主要是拆分代码,减少vue实例的代码量,方便ui的重用。
vue创建组件的方式,Vue.component(组件名称,组件构造器),跟创建Vue对象相似,同样有data、methods、watch等,但是组件的data必须是一个函数,而且没有el获取根实例。
如下代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="vue.js" type="text/javascript"></script> </head> <body> <div id="app"> <my-com></my-com> </div> <script type="text/javascript"> Vue.component("myCom",{ //data必须是一个函数 data :function(){ return{ count:0 } }, template:"<button v-on:click=‘count++‘>点击了{{count}}次</button>" }) var vm = new Vue({ el:"#app" }) </script> </body> </html>
还有通过extend的几种方式来实现的
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"> <my-com></my-com> <mycom2></mycom2> <mycom3></mycom3> <mycom4></mycom4> </div> <template id="temp"> <div > <h1>第四种组件的实现方式</h1> <h2>这种写法的好处是能够提示信息</h2> </div> </template> <script> var com1 = Vue.extend({ template:‘<h1>组件的第一种实现方式</h1>‘ }) Vue.component(‘myCom‘,com1) Vue.component(‘mycom2‘,Vue.extend({ template:‘<h2>组件的第二种实现方式</h2>‘ })) Vue.component(‘mycom3‘,{ template:‘<h3>组件的第三种实现方式</h3>‘ }) Vue.component(‘mycom4‘,{ template:"#temp" }) var vm = new Vue({ el:"#app" }) </script> </body> </html>
组件是通过prop来进行数据传递的。
原文:https://www.cnblogs.com/qcq0703/p/11986084.html