Vue组件开发初探

  

<强>注册一个组件

  

有两种方式可以注册一个组件,第一种是全局注册,第二种是局部注册

        #全局注册   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组件开发初探