随着学习的深入,遇到了各种各样的问题,而伴随着这些问题的解决,你的能力提升也将随着显现。人的记忆是有限的,所以对于学习中遇到的问题的总结、记录将会对你知识技术的沉淀非常有必要。下面是自己在用vue脚手架构建项目时遇到的一些问题汇总:
- 在进行移动端项目开发的时候,适配是一个非常有必要处理的问题,在进行vue项目开发的时候,我们可以使用 postcss-px-to-viewport 这个插件,具体安装步骤如下:
- npm install postcss-px-to-viewport -D
- 在项目根目录中添加.postcssrc.js文件,并在里面添加配置项
- 重新运行项目,使配置文件生效
2、在用vant库进行界面开发的时候会涉及到对vant组件的修改,但是需要加个深度选择器—— ::v-deep。写法如下:
::v-deep .vant_title { color: red }
3、vue项目会涉及到用axios对数据进行获取,我们可以在main.js里面配置axios的根路径且将其挂载到Vue原型里面去
axios.defaults.baseURL = "接口地址";
Vue.prototype.$http = axios
这样以后在组件里面使用axios的时候不用引入,直接用this.$http就可以获取数据。
4、如何通过ref获取dom
<input type="text" v-model="words" ref="inp"> this.$refs.inp
5、判断一个数据是否为数字类型
typeof num == 'number'
6、数组中map方法在vue项目中应用的非常广泛,现在记录下其一个简写用法
data: this.list.map(item => { return { value: item.price, name: item.name } })
等价于
data: this.list.map(item => ({ value: item.price, name: item.name }))
7、在vue中使用less的时候会报错:TypeError: this.getOptions is not a function,可能是因为你安装的less版本过高,导致代码不兼容导致,可以卸载重装低版本的。比如:
npm i -D less@3.5.0
npm i -D [less-loader@7.3.0](http://less-loader@7.3.0)
8、在进行vue2.0版本开发项目的时候,也要注意vue-router版本的问题,过高可能报错如下:
vue2.7,安装 vue-router 时,直接运行了 npm install vue-router 命令,造成直接下载最新版 vue-router 4.1.6,而 4 以后的版本适用于 vue3.0 版本,用在 vue2.0+ 会报错。
解决方案: 在项目根目录下打开CMD,分别运行如下命令并重启项目即可:
npm uninstall vue-router
npm install --save [vue-router@3](http://vue-router@3)
9、axio作为vue项目获取数据的最佳方案,是前端开发人员必须要掌握的技能之一,这里来说下全局安装。
//首先,通过npm进行下载
npm install axios
//在main.js中引入
import axios from 'axios'
//挂载到vue原型中
Vue.prototype.$http = axios
这样以后各个组件通过axios获取数据的时候,就可以直接通过this.$http来进行了。
10、为了方便开发,vue中给我们封装了很多的简写,在监听键盘事件时,添加了特殊的键盘修饰符。其中一个就是enter。注意在使用的时候,要将他放在input输入框里面使用(其他表单元素没测试过)。
<input placeholder="请输入任务" class="new-todo" ref='input' @keyup.enter="addList" v-model.trim="text" />
我之前是放在div里面的,没有效果。
11、当复制一段vue带你的时候,不要忘记它里面的变量和方法也要完整复制: 下面的报错截图是因为没有定义name:
以上就是最近写vue项目做的一些总结。欢迎大家一起讨论交流,本人学习中,若其中存在不足,还望各位大神多多指点~