大家。
我对制作vue组件有一个小小的疑问。
我不想使用 browserify 或 webpack ,因为我在django工作,它在静态文件中有大部分模板虽然我读过this,但它确实描述了如何兼顾两者(但在其他日子也是如此)。
我正在制作一个单个文件组件,我必须使用我的路由器导入和使用它,但我不能,因为导入不会发生。
我的 Hello.vue
<template>
Some HTML code here.
</template>
<script>
module.exports = {
data() {
return {
coin : []
}
},
beforeRouteEnter (to, from, next) {
axios.get('my-django-rest-api-url')
.then(response => {
next(vm => {
vm.data = response.data
})
})
}
}
</script>
我在 index.html 文件本身,没有其他 .js 文件,
<script>
import Hello from '@/components/Hello.vue'
Vue.use(VueRouter);
const dashboard = {template:'<p>This is the base template</p>'};
const profile = {
template: '#profile_template',
data () {
return {
profile_details: []
}
},
beforeRouteEnter (to, from, next) {
axios.get('my-api-url')
.then(response => {
next(vm => {
vm.profile_details = response.data
})
})
}
}
const router = new VueRouter({
routes: [
{ path: '/', component: dashboard },
{ path: '/profile', component: profile },
{ path: '/hello', component: Hello }
]
});
new Vue({
router : router,
}).$mount('#app');
</script>
1。<script src="../components/Hello.js" type="module"></script>
并按照建议here
export const Hello = { ...
import Hello from '../components/Hello.js';
SyntaxError: import declarations may only appear at top level of a module
Uncaught SyntaxError: Unexpected identifier
答案 0 :(得分:2)
不是Vue.js大师,但这里有一些可能对你有用的观点。
import
和export
,则需要使用Webpack。而且大多数肯定是Babel(或任何其他ES6转录程序,例如Buble)。module.exports
,那么您需要Browserify。它支持在浏览器环境中支持CommonJS。<script>
导入每个文件。绝对不是最干净的方法。.vue
个文件中,但无论哪种方式,它们都需要vue-loader
,可以使用捆绑器添加和配置(再次)。<script>
s。答案 1 :(得分:2)
你正在尝试做一些不可能的事情。 Web浏览器不支持Vue单个文件组件作为原始组件文件。应该编译单个文件组件。
请查看此内容以获取更多信息: https://vuejs.org/v2/guide/single-file-components.html
在Webpack中,每个文件在被包含在包中之前都可以被“加载器”转换,而Vue提供了vue-loader插件来转换单个文件(.vue)组件。
vue单个文件组件首先被“翻译”(编译)为纯javascript代码,浏览器可以使用它。