Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器。 在 HTML 层, 我们决定这样定义组件接口:通过传入不同的level 1-6 生成h1-h6标签,和使用slot生成内容
<script type="text/javascript">
/**
- 全局注册child组件,注意template如果值以 # 开始,则它用作选项符,将使用匹配元素的 innerHTML 作为模板。常用的技巧是用 <script type="x-template"> 包含模板,这样的好处是html不会渲染里面的内容
- 这里使用template不是最好的选择,
- 一、代码冗长
- 二、在不同的标题插入内容需要重复使用slot
- 三、由于组件必须有根元素,所以标题和内容被包裹在一个无用的div中,比如
hello world
*/
Vue.component('child',{
template: '#child-template',props: {
level: {
type: Number,required: true
}
},data: function() {
return {
a: 1
}
}
})
new Vue({
el:"#div1"
})