vue组件之构建

关键词:构建组件

引入vue.js
* <script src="https://unpkg.com/vue/dist/vue.js"></script>

全局组件

Vue.component('m-title', {
     template:`<div>welcome to ferrinte blog</div>`
  });

模板方式搭建

// 模板(写在script标签外)
<template id="title">
  <div>
    <h1>风景</h1>
    <p>洛阳城里花如雪</p>
    <p>洛阳花开动京城</p>  
  </div>
</template>
<script type="text/javascript">
    Vue.component('m-title', {
     template:'#title'
  });

注册使用

    new Vue({
       el: '#demo',
    });
    <div id="demo">
        <m-title></m-title>
    </div>
    <m-title></m-title>  <!-- 无效 -->

注意

  • 组件只能有一个根元素
  • 全局组件代码一定要在注册代码之前
  • 全局组件不注册无法使用
  • 组件中的data必须是函数

局部组件

var Child = {
  template: '<div>你见或者不见我,我就在那里,不离不弃</div>'
}
new Vue({
  // ...
  components: {
    // <my-component> 将只在父模板可用
    'my-component': Child
  }
})

这种封装也适用于其它可注册的 Vue 功能,如指令。


DOM 模版解析说明
当使用 DOM 作为模版时(例如,将 el选项挂载到一个已存在的元素上), 你会受到 HTML 的一些限制,因为 Vue 只有在浏览器解析和标准化HTML 后才能获取模版内容。尤其像这些元素
* <ul>,<ol>,<table>,<select>
限制了能被它包裹的元素, <option>只能出现在其它元素内部。
这种方式是无效的

<table>
 <my-row>...</my-row>
</table>

应该这样写

<table>
  <tr is="my-row"></tr>
</table>

如果您使用来自以下来源之一的字符串模板,这些限制将不适用:

  • <script type="text/x-template">
  • JavaScript内联模版字符串
  • .vue 组件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,095评论 0 29
  • 此文基于官方文档,里面部分例子有改动,加上了一些自己的理解 什么是组件? 组件(Component)是 Vue.j...
    陆志均阅读 3,885评论 5 14
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,158评论 4 129
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,273评论 0 6
  • 怀孕已近乎五个月了,前三个月的痛苦几乎消失殆尽。最近在吃吃喝喝中无法自拔,体重直线飙升,当然,每天还有宝贝的胎动...
    碧海颖天阅读 355评论 1 1