vue常见问题

xiaoxiao2021-02-28  41

一:运行后报错“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。 

 

二:vue中慎用style的scoped属性

 

<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的功能更加强大

转载请注明原文地址: https://www.6miu.com/read-2622221.html

最新回复(0)