<强>注册一个组件强>
有两种方式可以注册一个组件,第一种是全局注册,第二种是局部注册
#全局注册 Vue.component(“组件”,{ 模板:“& lt; span> Hello” }) #局部注册 var的孩子={ 模板:“& lt; span> Hello” } 新Vue ({//ぁぁ? 组件:{ 组件:孩子 } }) >之前注意:组件的注册必须要在Vue实例创建之前
使用组件
& lt; div id=坝τ谩北? & lt; my-component> & lt;/my-component> & lt;/div>当我们需要使用到数据时,数据必须是一个函数,否则将会报的错,这是Vue的一个规则,如下
Vue.component(“组件”,{ 模板:“& lt; span>{{消息}}& lt;/span>”, 数据:函数(){ 返回{消息:‘你好’} } })<强>组件间消息传递强>
当我们封装了组件,但是组件一个又嵌套了组件B,这时候组件AB形成了父子组件的关系,我们应该怎么来让父组件传递消息给子组件呢,这里用到了一个属性值道具,如下
Vue.component(“组件”,{ 道具(“信息”): 模板:“& lt; span>{{消息}}& lt;/span>” }) #通过道具传递消息给子组件 & lt;组件信息=癏ello”祝辞& lt;/my-component> >之前上面的例子,我们通过道具传递了参数给子组件,确实能改变子组件的值,但是,假如我们有这样一个要求,道具的值是动态改变的,那么这种静态字面量传递参数的方式就不能满足我们的需求了。如下将说明如何进行动态的道具值设定
& lt; div id=坝τ谩北? & lt;输入v模型=" parentMsg "祝辞& lt; br> & lt;组件v-bind: message=皃arentMsg”比; & lt;/div>这里通过v-bind的命令,将我们的消息与parentMsg进行绑定,这样,当我们的parentMsg改变时,信息将能实时改变
<>强自定义事件强>
父子组件之间如果通过道具来传递数据的话,那么似乎只能进行单向的数据传递,只能从父组件向子组件传递,假如我们需要从子组件传递消息回去,那么就需要用到自定义事件了
#使用v绑定自定义事件 Vue.component(“组件”,{ 模板:“v & lt;按钮:点击=霸隽俊痹趝{柜台}}& lt;/button>”, 数据:函数(){ 返回{计数器:0} }, 方法:{ 增量:函数(){ 这一点。计数器+=1; 美元。排放(增量); } } }) 新Vue ({ 埃尔:“#应用”, 数据:{//ぁぁ? 总:0 }, 方法:{//ぁぁ? incrementTotal:函数(){ 这一点。总+=1; } } }) >之前& lt; div id=坝τ谩北?//ぁぁ? & lt; p>{{总}}& lt;/p> & lt;组件v:增量=" incrementTotal "祝辞& lt;/my-component> & lt;/div>这里,我们点击按钮,按钮的显示的数值将会改变,同时,全部的值也会动态的改变,这就是子组件回传数据的实例,我们点击按钮时,将会首先执行按钮的onclick方法,在onclick方法里面,通过。美元发出(“增量”)来执行我们自定义的事件,假如我们需要美元在发射中添加参数,那么我们就要在美元在()中进行回调的处理
我们接下来自定义一个表单输入控件,我们在输入框中输入信息,同时在标页签中显示出来。
这里我们平时使用的
v模型="消息"其实是下面语句的一个简化版本,也就是语法糖
v-bind:价值=" https://www.yisu.com/zixun/message " v:输入=毕?参数[0]"或者
v-bind:价值=" https://www.yisu.com/zixun/message " v:输入=毕?$ event.target.value”那么自定义表单控件我们需要干什么呢?
为了让v模型生效,我们需要在子组件中定义一个价值的属性,还有一个监听新值产生的输入事件
来看看我们的自定义控件代码如下:
& lt;我的输入标签=跋ⅰ?value=" https://www.yisu.com/zixun/message " @input=跋?参数[0]”祝辞& lt;/my-input>Vue组件开发初探