【发布时间】:2019-01-07 20:47:33
【问题描述】:
我试图让 Vue.js 从现有的 HTML 模板中实例化它的组件,但我找不到任何合理的信息。我正在使用非 JavaScript 后端框架,并将 Vue.js 作为普通的 .js 文件添加到视图堆栈中。
假设我的 HTML 结构如下所示:
<div id="vueApp">
<div class="vueComponent">...</div>
<div class="vueComponent">...</div>
<div class="vueComponent">...</div>
</div>
然后我尝试使用这样的 JavaScript 启用它(混合使用 jQuery 和 Vue 以确保安全):
<script>
// declare Vue component
Vue.component('irrelevantName', {
template: '.vueComponent',
data: function() {
return { something: false }
}
});
// launch Vue app
jQuery(document).ready(function() {
var vueApp = new Vue({
el: '#vueApp',
created: function() {
// TODO: some method that will read/parse the component data, do binding, whatever
}
});
});
</script>
每当我在 HTML 结构中有一个精确声明和指向的 <template> 标记并且组件应该只是一个单独的组件时,这种方法非常适用。在这种情况下,虽然我试图实例化由 CSS 类标识的 n 个。
我知道一种可能的方法是将所有组件数据作为隐藏的<input> 与 JSON 化的数组/集合数据一起传递,然后要求vueApp 从这些数据中动态创建单模板驱动的组件,不过这似乎有点乏味。
有什么建议吗? 提前致谢!
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component