揭开web前端的面纱

vue组件之构建

2017-03-05  本文已影响26人  ferrint

关键词:构建组件

引入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>  <!-- 无效 -->

注意

  • 组件只能有一个根元素

局部组件

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">
上一篇 下一篇

猜你喜欢

热点阅读