我喜欢vue.js,因为它简单,这意味着我可以使用现代,直观的数据绑定语法并且没有复杂的工具链来破解快速的单页SPA。
我也喜欢 single-file components 的想法,这意味着有一个地方(*.vue
文件),其中每个组件都存储DOM,样式和脚本功能。
但是,我想使用单文件组件,而不是每次将应用程序放在一起时都浪费时间来管理构建过程。简而言之,我希望组件管理带来的好处,而不需要构建工具链的开销,这意味着让浏览器通过*.vue
和DOM呈现来引导每个XMLHttpRequest
文件的繁重工作。确保我们使用相应的module.exports
功能替换import
和Vue.component()
次来电。
我很想知道是否有人遇到过在浏览器上使用*.vue
文件的客户端(唯一)解决方案。当然这已经完成了吗?
答案 0 :(得分:11)
我绝对肯定这还不存在,因为虽然看起来相对容易,但某些功能会使其难以实施。例如:
这些只是我头脑中最明显的一些。当然,你可以严格限制自己而不使用任何这些功能,但它不再是真正的.vue组件了,是吗?
如果您真的想不惜一切代价避免构建过程并且愿意接受不使用上述任何功能的限制,那么为什么不使用单个JS文件:
$(body).append(`<style>
// styling goes here
</style>`);
var myTemplate = `
// template goes here
`;
Vue.component('my-component', {
template: myTemplate
// component logic goes here
})
你必须以正确的顺序加载它们,但是你有它,一个穷人的单个文件组件。
答案 1 :(得分:2)
但是,我想使用单文件组件,而不会在每次将应用程序放在一起时浪费时间管理构建过程。简而言之,我想要组件管理的好处而没有构建工具链的开销
我也有同感,决定用 vue-blocks 解决这个问题。只需一个脚本标记即可开始使用,无需构建工具,完全在客户端。
它可以从服务器 jsfiddle example 加载 vue 文件(虽然有一些限制):
<template src="path/to/vue-file.vue"></template>
Vue Blocks 允许您在 html 文档中编写多个 vue 组件,如下所示:
<template component="sample-component">
<div>
<h1>Sample component</h1>
</div>
<style>
</style>
<script>
export default {
data() {
return {}
},
mounted() {},
methods: {
xx() {
}
}
}
</script>
</template>
jsfiddle 中的一个工作演示:https://jsfiddle.net/o48L0y9j/
答案 2 :(得分:1)
另一种使用方式:http-vue-loader
直接从html / js加载.vue文件。没有node.js环境,没有构建步骤。
https://cdn.jsdelivr.net/npm/http-vue-loader@1.4.1/src/httpVueLoader.min.js
与unpkg CDN中的
相同 https://unpkg.com/http-vue-loader
这里有个例子
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/http-vue-loader"></script>
<script>
new Vue({
el: '#app',
components: {
'header': httpVueLoader('/components/header.vue'),
'nav-bar': httpVueLoader('/components/navbar.vue'),
'aside': httpVueLoader('/components/aside.vue'),
'content': httpVueLoader('/components/content.vue'),
'footer': httpVueLoader('/components/footer.vue')
}
});
</script>
或者您可以从
之类的外部加载组件'MyHelloWorldComponent': httpVueLoader('https://my-cdn-or.github.io/path/HelloWorld.vue'),
答案 3 :(得分:1)
现在是2020年,而Evan You上周才写了https://github.com/vuejs/vite。
我很想知道是否有人遇到过客户端(仅)解决方案...
Vite有一个服务器,但是感觉就像以前只有记事本的Web时代。我已经在不到5分钟的时间内运行了演示,就这么简单。
就目前而言,我要说的唯一要注意的是,如果您使用Vue 3 beta领域,则立即进入。没有Vue 2.x。