创建vue2项目以及flexble适配

一、创建vue2项目

  1.查看版本号:vue -V

  2.npm init webpack "项目名"

  

 

 二、使用flexble做适配

  1.下载flexble包。  

npm i lib-flexible --save

 

  2.项目中main.js中引入 

import 'lib-flexible/flexible'

  3.修改源码

  4.安装拓展工具px<--->rem   互相转换

三、使用ElementUI

  1.下载ElementUI.

npm install element-ui -S

 

  2.在main.js中引入

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)

 

  3. ElementUI官网地址:   https://element.eleme.cn/#/

四、使用axios

  1.下载axios

npm install axios

 

  2.在main.js中引入并简单封装

import axios from 'axios';
axios.defaults.baseURL = '/api';   //配置代理了,所以这个是/api,实际开发中应考虑实际问题
Vue.prototype.$axioslog =Axios;
/*封装axios*/
function Axios(options){
  axios({
    url:options.url,
    method:options.method||'POST',
    data:options.data,
    params:options.data,
    headers: {'Access-Control-Allow-Origin': '*'}
  }).then(result=>{
    options.success(result.data)
  }).catch(err=>{
    console.log("失败++"+err);
    options.error(err)
      // Message.error({message:msg,offset:150});
    // }
    // else {
      // Message.error({message:msg,offset: 150});
    // }
  })
}

 

  3.在组件中使用:

deleteRow(){
      let that = this; 
      that.$axioslog({   //数据库中删除
              url:'/users',
              method:'post',
              data: {
                "unique_id": that.unique_id,
              },
              success:(response)=>{
                  if(response.code === 0) {
                      console.log("成功",response);
                  } else {
                    this.$message.error('失败');
                  }
              },
              error: (response)=>{
                  this.$message.error('失败');
              }
          })
    },

 

  使用formData 传参

const that = this;
let formData = new FormData();
formData.append("name", that.nowname);
formData.append("id", that.nowid);
formData.append("audio_file", regVoiceBuffer, that.form.id+that.rannum+".wav");   //传文件
for(var pair of formData.entries()) {
          console.log(pair[0] + ', ' + pair[1]);
      }
this.$axioslog({
          url:'/voiceprint/register',
          method:'post',
          data:formData,
           ...........

五、进行代理配置,解决跨域问题

  1.在配置文件index.js里面(因为是VUE2,所以是config文件夹)。例如完整后台接口是http://122.122.122.22:19001/api/user/delete,则target:应为http://122.122.122.22:19001  ;/api应为所有接口统一前缀,此为/api,

  2.在main.js中设置基础路径,意思好像是遇到/api之后就走代理。

axios.defaults.baseURL = '/api'; 

 

  3.这个情况可以解决前后端放在同一(或不同)服务器上不同tomcat下面,如前端在8080,后台在8090,则有此跨域问题,需要进行代理配置。

六、解决打包问题中图片等404

修改两处,一个是build文件夹下utils.js,添加publicPath:'../../'    ,如图:

 

第二处是config文件夹下index.js中assetsPublicPath: './',   加一个.   

 

posted @ 2022-11-09 15:07  ss-dz  阅读(349)  评论(0编辑  收藏  举报