组件的分离式写法

180 阅读1分钟

如果用以下的方式写,html和js混合在一起,不整洁 image.png

提供了两种分离式写法:

-<script type="text/x-template" id="cpn">

-<template id="cpn">

image.png

这两种写法的注册形式:

全局

image.png

局部

image.png

分离式写法的数据存放:

在注册的时候,以前通过Vue.extend({options}),核心用到的还是options参数对象,现在可以直接吧options取出来,单独定义,包含该组件的以下属性:

  • template
  • props
  • data
  • methods
  • watch等

image.png 在Vue根实例中的components中引用

image.png

组件的data属性为什么是函数?

因为一个组件需要多处引用,如果data属性是普通对象,那么一处修改该data属性,其他组件也会被修改。。。组件是可复用的,如果data是对象,那么多个子组件修改data中数据那么所有的组件中数据都会被影响,因为组件实例化返回的是组件对象,对象中的data属性如果是对象,那么互相影响,方法则不会