资讯专栏INFORMATION COLUMN

Vue组件之全局组件与局部组件

rickchen / 1307人阅读

摘要:组件是最强大的功能之一。全局组件注册方式组件名方法我是全局组件渲染结果我是全局组件我是全局组件这里需要注意全局组件必须写在实例创建之前,才在该根元素下面生效我是全局组件这样只会渲染根元素下面的,并不会渲染根元素下面的,并且会报错。

组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。个人认为就是一个可以重复利用的结构层代码片段。

全局组件注册方式:Vue.component(组件名,{方法})

eg:


渲染结果:

我是全局组件

我是全局组件

这里需要注意:

1.全局组件必须写在Vue实例创建之前,才在该根元素下面生效;

eg:


这样只会渲染app1根元素下面的,并不会渲染app根元素下面的,并且会报错。

2.模板里面第一级只能有一个标签,不能并行;


这样子会报错,并且只会渲染第一个标签h1;我们应该这样子写:


局部组件注册方式,直接在Vue实例里面注册

eg:


局部组件需要注意:

1.属性名为components,s千万别忘了;

2.套路比较深,所以建议模板定义在一个全局变量里,代码看起来容易一点,如下:(模板标签比较多的时候,这样子写更加简洁规整)


关于组件中的其他属性,可以和实例中的一样,但是data属性必须是一个函数:

eg:


显示结果:

全局组件和局部组件一样,data也必须是一个函数:


显示结果:

当使用 DOM 作为模板时 (例如,将 el 选项挂载到一个已存在的元素上),你会受到 HTML 的一些限制,因为 Vue 只有在浏览器解析和标准化 HTML 后才能获取模板内容。尤其像这些元素

      ,,