初识vue,难免有坑,仅此记下。
在webpack中配置vue时,发现data中的数据在页面无法正常执行,还是显示文本{{message}} 几番查找原因无果,最后发现引入的打包后js需要放在vue绑定的div之后。
以下为正确打开方式:
1.先在源码js里导入vue
import Vue from 'vue'
const app = new Vue({
el:"#app",
data:{
message:'你好'
}
});
2.然后在HTML中引入打包后的js文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- 习惯放在head里,这里应该是加载顺序的问题,导致message无法执行 -->
<!-- <script src="../dist/bundle.js"></script> -->
</head>
<body>
<div id="app">
{{message}}
</div>
<script src="../dist/bundle.js"></script>
</body>
</html>
3.这是发现还不行,不用急,再配置一下webpack.config.js,通过resolve指定vue版本
(因为默认的使用vue-runtime.js,不会预编译模板)
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '../dist/'
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.less$/,
use: [{
loader: "style-loader" // creates style nodes from JS strings
}, {
loader: "css-loader" // translates CSS into CommonJS
}, {
loader: "less-loader" // compiles Less to CSS
}]
},
]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
}
}
大功告成!