Javascript 将Vue.js与Web包一起使用
我是第一次使用Vue.js,无法使用最简单的代码段。我目前正在使用Webpack将其添加到现有项目中,这是我的js文件中的代码:Javascript 将Vue.js与Web包一起使用,javascript,vue.js,webpack,Javascript,Vue.js,Webpack,我是第一次使用Vue.js,无法使用最简单的代码段。我目前正在使用Webpack将其添加到现有项目中,这是我的js文件中的代码: import Vue from 'vue' import 'bootstrap'; ... var app = new Vue({ el: '#toto', data: { message: 'Hello Vue!' } }); 我的HTML很长,但这就是我要做的: <div id="main"> <div class="
import Vue from 'vue'
import 'bootstrap';
...
var app = new Vue({
el: '#toto',
data: {
message: 'Hello Vue!'
}
});
我的HTML很长,但这就是我要做的:
<div id="main">
<div class="container">
<div id="toto">{{ message }}</div>
<h2 class="title">Search results</h2>
</div>
</div>
{{message}}
搜索结果
因此,当我运行上面的js代码时,“toto”div是空的。我在网页包中没有收到任何编译错误,在Chrome控制台中也没有收到任何错误
我做错了什么?当您使用Webpack时,Vue通常需要单个文件组件(
*.Vue
)-您不能在公共HTML文件中放置模板。所以你必须这样做:
var-app=新的Vue({
el:'托托',
模板:“{message}}”,
数据:{
消息:“你好,Vue!”
}
});
当您使用Webpack时,Vue通常需要单个文件组件(*.Vue
)-您不能将模板放入公共HTML文件中。所以你必须这样做:
var-app=新的Vue({
el:'托托',
模板:“{message}}”,
数据:{
消息:“你好,Vue!”
}
});
我在这里找到了解决方案:
添加到Web包配置文件的以下代码实现了此目的:
module.exports = {
// ...
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
}
}
我在这里找到了解决方案: 添加到Web包配置文件的以下代码实现了此目的:
module.exports = {
// ...
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
}
}
你的JS执行了吗?尝试在控制台顶部添加一些
console.log('HERE
)`file@BroiSatse除了Vue部分之外的所有JS代码。我不确定你的答案是什么意思,但我假设它是在控制台中打印出来的?代码是否在加载元素#toto
时执行,即脚本是否在html末尾加载?@broisasse我想我在编辑原始消息之前回答了。因此,为了回答您的问题,除了Vue实例化之外,所有JS代码都可以工作(我甚至在Vue部分之前和之后添加了日志消息)。奇怪的是,当我将“el”属性改为“#main”时,整个main div都被清空了。这有帮助吗?所以上面的链接解决了这个问题。我必须删除“template”属性才能让它工作。你的JS执行吗?尝试在控制台顶部添加一些console.log('HERE
)`file@BroiSatse除了Vue部分之外的所有JS代码。我不确定你的答案是什么意思,但我假设它是在控制台中打印出来的?代码是否在加载元素#toto
时执行,即脚本是否在html末尾加载?@broisasse我想我在编辑原始消息之前回答了。因此,为了回答您的问题,除了Vue实例化之外,所有JS代码都可以工作(我甚至在Vue部分之前和之后添加了日志消息)。奇怪的是,当我将“el”属性改为“#main”时,整个main div都被清空了。这有帮助吗?所以上面的链接解决了这个问题。我必须删除“template”属性才能让它工作。我不明白,但我尝试了你的代码,它没有改变任何东西。你能详细说明一下新的文件结构和变化吗?“template”属性的作用是什么?看看这个JSfiddle,我当前的代码中的“el”属性不是从“toto”改为“main”?@IVOGELOV-有趣的是,你的小提琴没有列出模板,它仍然可以工作。关键是如果你使用Webpack(因此,*.vue
文件中的单个文件组件)-您不需要template
属性。如果您在运行时在普通HTML页面上加载Vue,那么您必须以字符串形式提供模板,或者在HTML中提供
标记的ID。我不明白,但我尝试了您的代码,它没有改变任何内容。请详细说明新的文件结构和更改。什么“template”属性有用吗?看看这个JSFIDLE,我的当前代码中的“el”属性不是从“toto”改为“main”吗?@IVOGELOV-有趣的是,你的小提琴没有列出模板,它仍然有效。关键是如果你使用Webpack(以及*.vue
文件中的单文件组件)-您不需要模板
属性。如果在运行时在普通HTML页面上加载Vue,则必须以字符串形式提供模板,或者在HTML中提供
标记的ID。