一:运行后报错“Do not use 'new' for side effects
构建项目时,用了 “ESLint” 工具检查代码质量。命令行报错“Do not use ‘new’ for side effects“,main.js里的原代码是这样的:
new Vue({
router,
el: "#app",
render: h => h(App)
})
这段代码不使用ESLint检查运行是没有问题的,使用了“ESLint” 要改成如下的两种形式之一:
方式一:
let vm = new Vue({
router,
el: '#app',
render: h => h(App)
})
Vue.use({
vm
})
方式二:
添加注释 =》/* eslint-disable no-new */ ,它的作用是:完全禁用ESLint检测,eslint的常用技巧之一。
/* eslint-disable no-new */
new Vue({
router,
el: "#app",
render: h=> h(App)
})
选用任意一种方式运行,都OK。
<style lang="less" scoped>
@import "../../assets/less/normalize.less";
@import "../../assets/less/base.less";
</style>
在vue组件中,在style标签上添加scoped属性,以表示它的样式仅作用于当下的模块,很好的实现了样式私有化的目的。
但是为什么要慎用呢?在实际业务中我们往往会在父组件中对引用的公共组件样式做细微的调整,如果公共组件添加了scoped属性,那么父组件将不容易修改公共组件的样式(除非父组件用!important),也就是说对公共组件的样式不适合使用scoped属性。
三:有关qs模块
import axios from 'axios'
import qs from 'qs'
let post = (url, data) => {
return axios({
method: 'post',
url,
data: qs.stringify(data),
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
}
})
}
export default {post}
qs模块需要通过npm安装。它是一个支持嵌套的查询字符串解析器。有parse和stringify方法。
简单来说就是qs可以转换任意类json格式的数据,而querystring只能转换平面数据结构,qs的功能更加强大