我的微服务vue集锦vue

vue移动端项目搭建

2019-08-12  本文已影响10人  粥的进击之旅

使用框架:vue

使用插件:vue-cli,vue-loader,axios ,px2rem

使用UI框架:mint-ui

第一步、先用 vue-cli 直接搭建项目

先全局安装 vue-cli

npm install --g vue-cli

然后执行创建项目语句
vue-cli 3.x则用

vue create project-name

vue-cli 2.x 用(我这用的是2.x)

vue init webpack project-name
搭建

ESlint 是统一代码风格的
下面两个是测试用的
最后是选择install 依赖包,默认npm就行了,安装慢的话可以用淘宝的镜像 cnpm。
项目搭建好在项目根目录运行

npm run dev

就可以得到这样一个页面


默认首页

搭建好获得这个项目结构


图为借鉴来的
第二步、引入使用的插件
(1)axios(数据请求,类似ajax,vue-resource)
npm install axios -s

安装好后,开始配置axios,和封装请求,在src下创建api文件夹用于放置请求文件
http.js ↓

目录
创建http.js,用于放置封装文件和基本配置
import axios from 'axios'
import QS from 'qs'
//默认接口url前缀
axios.defaults.baseURL = 'http:// 你的api路径';
//超时时间,超过5秒提示请求超时
axios.defaults.timeout = 5000;
//post的默认请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
/**
 * get方法,对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function get(url, params) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err.data)
        })
    })
}

/**
 * post方法,对应post请求
 */
export function post(url, params,config) {
    return new Promise((resolve, reject) => {
        axios.post(url, QS.stringify(params),config)
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
    })
}

创建模块的请求js
login.js

import {get, post } from './http'
export const login = data => post('login_query_Personnel', data)
export const queryCode = data => get('query_Personnel_openid',data)

在组件使用

import { login } from "../api/login";
methods:{
  tologin(){
    login({
        phone: this.phone,
        password: this.password,
        openid:localStorage.getItem("openid")
      }).then(res => {
        console.log(res);
        if (res.resultCode == 0) {
          Toast("登录成功");
          localStorage.setItem('loginInfo',JSON.stringify(res.data))
          this.$router.go(-1)
        } else {
          Toast(res.resultMess);
        }
      });
}
}
(2)引入mint-ui
npm install mint-ui -s

按需引入组件

<mt-header title="登录">
</mt-header>
import { Header, Field, Toast } from "mint-ui";
(3)引入px2rem,适配手机端
npm install postcss-px2rem -s

记得删除index.html<meta name='viewport' >标签
在.postcssrc.js中配置

// https://github.com/michael-ciniawsky/postcss-load-config

module.exports = {
  "plugins": {
    "postcss-import": {},
    "postcss-url": {},
    // to edit target browsers: use "browserslist" field in package.json
    "autoprefixer": {},
    'postcss-px2rem-exclude':{
      remUnit:75  //按照设计图
    }
  }
}

第三步、配置路由

设置路由路径及相对应的组件
及是否需要登陆

{ path: '/baoxiu', name: 'baoxiu', component: baoxiu, meta: { requireLogin: true } },

判断是否需要登录,在路由中设置 router.beforeEach

router.beforeEach((to, from, next) => {
    if (to.matched.some(record => record.meta.requireLogin)) {  //判断该路由是否需要登录权限
        if (localStorage.getItem('loginInfo')) {        //判断当前用户的登录信息loginInfo是否存在
            next()
        } else {
            next({
                path: '/login',
                query: { Rurl: to.fullPath }        //保存上一个页面
            })
        }
    } else {
        next()
    }
})

参考于https://www.cnblogs.com/gaosong-shuhong/p/9300319.html

上一篇下一篇

猜你喜欢

热点阅读