Vue学习笔记(五)——组件与实例

叁歲伎倆 2022-03-10 14:40 282阅读 0赞

参考文档:https://cn.vuejs.org/v2/guide/

组件与实例定义的几个不同点:

  1. 组件不需要指定el,实例则需要指定el;
  2. 组件的data通常是一个函数,实例则通常是一个对象。

下面简单说明一下两者产生上述不同点的原因:

  1. 组件通常需要复用(比如在v-for中循环生成),无法指定el,而实例则是全局唯一的,因此必须指定el;
  2. 当组件的data是函数时,组件复用时生成的数据是每个组件各自维护一份,当组件的data是对象时,组件复用时生成的数据是所有组件公用一份,而实例没有复用的场景,是全局唯一的,因此定义为函数还是对象没有区别。

使用组件的几个注意点:

组件在声明时template只能有一个根元素(这一点和anguar的directive一样),如果尝试定义多个根元素,则会有以下错误提示:

  1. - Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
  2. -

组件不能在内部修改传入的信息(即props内的参数),如果尝试修改,则会有以下错误提示:

  1. Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: “xxx”

如果需要修改,可以通过$emit通知父元素修改。

组件可以指定ref属性(当前组件在父元素内的唯一标识符),此时父元素可以利用指定的ref属性通过以下方式来调用组件内的方法:

  1. that.$refs.refValue.func();

如果不需要调用组件内的方法,则可以不指定ref属性。

发表评论

表情:
评论列表 (有 0 条评论,282人围观)

还没有评论,来说两句吧...

相关阅读