【发布时间】:2016-01-14 07:07:41
【问题描述】:
我知道如何用简单的html创建一个vue组件构造函数:
var Foo = Vue.extend({
template: '<p>This is foo!</p>'
})
但是如何使用这样的 DOM 创建它:
<div id="phone-list">
<div class="container-fluid">
<div class="row">
<div class="col-md-2">
Search: <input v-model="query">
Sort by:
<select v-model="orderProp">
<option value="name">Alphabetical</option>
<option value="age">Newest</option>
</select>
</div>
<div class="col-md-10">
<p>There is {{p.length}} phones total.</p>
<ul class="phones">
<li v-for="phone in p.data | filterBy query | orderBy orderProp " class="thumbnail">
<a :href="'#/phones/' + phone.id" class="thumb"><img :src="phone.imageUrl"></a>
<a :href="'#/phones/' + phone.id">{{phone.name}}</a>
<p>{{phone.snippet}}</p>
</li>
</ul>
</div>
</div>
</div>
</div>
我应该在 JS 文件中混合 DOM 字符串和 JS 代码吗?这样做我感到恶心。
另外,我进行了一些搜索,其中一种解决方案可能如下所示:
Vue.extend({
template: require('./call.html'),
props: {
call: {
type: Object,
required: true
}
},
//...
但是,此解决方案需要我坚持使用一些捆绑工具,例如 webpack 或 browserify。
有没有办法创建 vue 组件 clean(DOM 保存在单独的文件中) 和 simple(不使用捆绑工具)?
【问题讨论】:
标签: components web-component vue.js