vue3

2018/11/14 vue

记录一点东西

差不多一年没用vue了,恰巧公司接了个vue的项目,重温,记录一下遇到的问题。我这里用的是vuecli3 和webpack4 + elementUI + iconfont 想起什么记什么。。。 ——————- 安装就不说了。。 现在创建项目需要 vue create 项目名字

1、打包路径问题

打包发布的时候,需要配置路径'/' 变成'./',我就找不到配置文件去哪里了。。。 翻阅了一会儿文档之后,发现之前的vue.config.js变成可选的了,需要我们自己在根目录自己创建,就是package.json同级别。 文件里面下面这样就可以了,就可以打包发布了。

  module.exports = {
      // 选项...
    baseUrl: './'
  }

打包

  npm run build

打包完成需要跑服务才会运行dist文件,本地的话可以安装一个node的serve,

  npm install -g serve
  serve -s dist

2、console.log报错

在按照了eslint后使用console.log会报错,这个时候需要配置eslint,结果发现vuecli3找不到配置文件了,翻了翻,在package.json中找到了一个字段eslintConfig,好的,就是你了,找到rules字段,然后修改一下配置就好了。

  "rules": {
      "no-console": "off"
    }

3、引入iconfont的问题

下载好的文件里面找到iconfont.css、iconfont.eot、iconfont.svg、iconfont.ttf、iconfont.woff放到assets里面,我建了个文件夹font 然后在main.js里面import进来

  import './assets/font/iconfont.css'

这里有一个问题,如果你没有css-loader的话,需要先安装一下 npm install css-loader –save-dev 然后就可以正常使用了

4、配置代理跨域

本地开发的时候,调用一个接口,提示跨域,配置一下vuecli的代理服务就好了。在根目录建一个vue.config.js,输入下面的配置就好了。

  module.exports = {
      // 选项...
    baseUrl: './',
    devServer: {
      proxy: '接口的域名或者ip'
    }
  }

5、axios发送请求接口要求是formdata格式

如果单纯的new一个FormData()对象的话,传过去的值带引号,后台接收不成功,这个时候就需要用一个模块-qs 引入:const qs = require("qs"); 使用:qs.stringify(obj) 使用qs的时候有一些注意事项,如果对象里面的值有数组的话会转成arr[0], arr[1]….这种格式,如果不想或者不需要变成这样的话就需要先使用JSON.stringify(arr)。

6、axios发送请求加密

修改密码的时候需要加密,我项目这里加密方法是sha1,使用的是一个纯js的加密插件crypto-js 安装cnpm install crypto-js --save 没有cnpm的话需要先安装cnpm, 我这里用的是sha1加密,就只说sha1的使用了,其他加密方法,比如md5之类的类似。 引入:import sha1 from 'crypto-js/sha1' 使用:sha1( pass ).toString()

7、写全局配置

我这里因为有需求全局控制baseURL,所以写了全局。 我在components下新建了一个Global.vue,你自己随意。 我的代码一部分

  // 在script标签里面
  const baseURL= '你的url';
  export default
    {
      baseURL  //服务器地址
    }

然后在main.js里面注入到根实例里面

  import myGlobal from './components/Global'
  Vue.prototype.myGlobal = myGlobal

使用: 在js里面使用的话就可以直接this.myGlobal.baseURL,在HTML里面使用就可以直接``

Search

    Table of Contents