当 Vue.js 1 发布时,我遵循了 laracasts 的 Vue.js 类(class),并且我曾经做过这样的事情:
import Comments from './components/Comments.vue';
import Upload from './components/Upload.vue';
new Vue({
el: 'body',
components: {
Comments,
Upload,
Preview,
Algolia,
},
etc,
});
这使我能够在我的应用程序中“散布”组件。但我无法再绑定(bind)到正文,因为 Vue 替换了内容,并且还抛出一条错误消息,指出您不应绑定(bind)到正文或 html。
我学习了一些 Vue.js 2 类(class),但如何以 Vue.js 2 方式复制此工作流程?我喜欢绑定(bind)到主体,并可以选择使用自定义标签在各处放置组件。
最佳答案
我们使用相同的“洒水”方法,我们所做的只是将其从 'body'
更改为 '#app'
。
我们还在内部添加了一个包装元素,该元素具有此 id 来基本上复制 body
。 (https://github.com/onespacemedia/project-template/blob/develop/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%7Bcookiecutter.package_name%7D%7D/templates/base.html#L62)
<body>
<div id="app">
...
</div>
</body>
我们使用 Jinja2 作为我们的模板语言,并且发现当 Jinja2 中无法解析的变量时,它会导致 Vue 失败,而且我认为 Vue 会尝试使用它。
我相信它会在初始渲染后获取#app
内的所有内容并将其转换为虚拟dom。不过,这不会对我所看到的产生任何影响,因此您可以愉快地在 body
中添加包装类,并像 Vue 1 一样使用它
关于javascript - Vue.js 工作流程(从 Vue.js 1 到 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959232/