wode项目开发流程(项目开发前配置)

2024-02-10 17:20
文章标签 配置 流程 项目 开发 wode

本文主要是介绍wode项目开发流程(项目开发前配置),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

流程

      • 一、搭建vue项目
      • 二、配置多环境变量
          • 1、`package.json` 里的 `scripts` 配置 `serve` `stage` `build`,通过 `--mode xxx` 来执行不同环境
          • 2、在根目录新建3个以`.env.`开头的文件,存放变量
          • 3、在src目录中新建config文件夹,再新建三个相对应的js文件,存放公共的`baseUrl`
          • 4、在config文件中新建index.js文件
          • 5、把index.js文件引入到调用函数方法的文件中(http/index.js)
      • 三、 Axios 封装及接口管理
          • 1、在src目录中新建http文件夹,在这个文件夹新建三个js文件`api.js` `request.js` `index.js`
          • 2、把这个request.js挂载到main.js中
          • 3、在组建中使用
      • 四、适配rem
          • 1、安装插件
          • 2、main.js导入
          • 3、在根目录新建.postcss.config.js文件
      • 五、VantUI组件按需加载
          • 1、安装插件
          • 2、在 `babel.config.js` 设置
          • 3、使用组件
          • 4、在`main.js`中引入
      • 六、vuex的配置
      • 七、scss混合(mixins)使用
      • 八、使用公共的方法

一、搭建vue项目

在这里我使用的vue3,因为vue搭建项目方便,体积小,也是现阶段的主流,npm create 项目名

二、配置多环境变量

因为这个项目从开发到上线需要经历三个阶段:开发、测试、上线。为了方便后面的操作,提前配置环境变量

1、package.json 里的 scripts 配置 serve stage build,通过 --mode xxx 来执行不同环境
  • 通过 npm run serve 启动本地 , 执行 development
  • 通过 npm run stage 打包测试 , 执行 staging
  • 通过 npm run build 打包正式 , 执行 production
"scripts": {"serve": "vue-cli-service serve","stage": "vue-cli-service build --mode staging","build": "vue-cli-service build",
}
2、在根目录新建3个以.env.开头的文件,存放变量
  • .env.development 本地开发环境配置
NODE_ENV='development'
# must start with VUE_APP_
VUE_APP_ENV = 'development'
  • .env.staging 测试环境配置
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'staging'
  • .env.production 正式环境配置
 NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'production'

这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development staging production变量我们统一在 src/config/env.*.js 里进行管理。

3、在src目录中新建config文件夹,再新建三个相对应的js文件,存放公共的baseUrl

配置对应环境的变量,拿本地环境文件 env.development.js 举例,用户可以根据需求修改

// 本地环境配置
module.exports = {title: 'vue-h5-template',baseUrl: 'http://localhost:9018', // 项目地址baseApi: 'https://test.xxx.com/api', // 本地api请求地址APPID: 'xxx',APPSECRET: 'xxx'
}
4、在config文件中新建index.js文件
// 根据环境引入不同配置 process.env.NODE_ENV
const config = require('./env.' + process.env.VUE_APP_ENV)
module.exports = config
5、把index.js文件引入到调用函数方法的文件中(http/index.js)
// 根据环境不同引入不同baseApi地址
import { baseApi } from '@/config'
console.log(baseApi)

这样多环境变量就配置好了。修改起来方便,不需要重启项目,符合开发习惯

三、 Axios 封装及接口管理

1、在src目录中新建http文件夹,在这个文件夹新建三个js文件api.js request.js index.js

api.js
是对接口的统一管理。

request.js
在这里可以做axios拦截

  • service.interceptors.request.use是请求拦截,这里可以设置请求头,比如token,还可以设置loading懒加载效果
  • service.interceptors.response.use是响应拦截,这里可以关闭懒加载效果,还可以做判断登录超时的操作
import axios from 'axios'
import store from '@/store'
import { Toast } from 'vant'
// 根据环境不同引入不同api地址
import { baseApi } from '@/config'
// create an axios instance
const service = axios.create({baseURL: baseUrl, // url = base api url + request urlwithCredentials: true, // send cookies when cross-domain requeststimeout: 5000 // request timeout
})// request 拦截器 request interceptor
service.interceptors.request.use(config => {// 不传递默认开启loadingif (!config.hideloading) {// loadingToast.loading({forbidClick: true})}if (store.getters.token) {//附加到请求头上config.headers.authorization = store.getters.token}return config},error => {// do something with request errorconsole.log(error) // for debugreturn Promise.reject(error)}
)
// respone拦截器
service.interceptors.response.use(response => {Toast.clear()const res = response.dataif (res.status && res.status !== 200) {// 登录超时,重新登录if (res.status === 401) {store.dispatch('FedLogOut').then(() => {location.reload()})}return Promise.reject(res || 'error')} else {return Promise.resolve(res)}},error => {Toast.clear()console.log('err' + error) // for debugreturn Promise.reject(error)}
)
export default service

index.js
存放封装接口的方法

  • url 接口地址,请求的时候会拼接上 config 下的 baseUrl
  • method 请求方法
  • data 请求参数 qs.stringify(params) 是对数据系列化操作
  • hideloading 默认 false,设置为 true 后,不显示 loading ui 交互中有些接口不需要让用户感知
// 根据环境不同引入不同baseApi地址
import { baseUrl } from '@/config'
import qs from 'qs'
// axios
import request from '@/utils/request'
//user api// 用户信息
export function getUserInfo(params) {return request({url: baseURL+baseUrl.xxx,method: 'post',data: qs.stringify(params),hideloading: true // 隐藏 loading 组件})
}
2、把这个request.js挂载到main.js中
import http from "./http/request"
Vue.prototype.$http=http
3、在组建中使用
<script>
export default {methods:{async getUserInfo(){let obj = {}let res = await this.$http.getUserInfo(obj)console.log(res)}},mounted(){this.getUserInfo()}}
</script>

四、适配rem

需要下载两个插件

  • postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem
  • lib-flexible用于设置 rem 基准值
1、安装插件
cnpm install lib-flexible postcss-pxtorem --save-dev
2、main.js导入
// 移动端适配import ‘lib-flexible/flexible’; 
3、在根目录新建.postcss.config.js文件
module.exports = {plugins: {autoprefixer: {overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']},'postcss-pxtorem': {rootValue: 75,propList: ['*']}}
}

五、VantUI组件按需加载

babel-plugin-import是一款 babel 插件,它会在编译过程中将
import 的写法自动转换为按需引入的方式

1、安装插件
npm i babel-plugin-import -D
2、在 babel.config.js 设置
// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
const plugins = [['import',{libraryName: 'vant',libraryDirectory: 'es',style: true},'vant']
]
module.exports = {presets: [['@vue/cli-plugin-babel/preset', { useBuiltIns: 'usage', corejs: 3 }]],plugins
}
3、使用组件

项目在 src/plugins/vant.js 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

// 按需全局引入 vant组件
import Vue from 'vue'
import { Button, List, Cell, Tabbar, TabbarItem } from 'vant'
Vue.use(Button)
Vue.use(Cell)
Vue.use(List)
Vue.use(Tabbar).use(TabbarItem)
4、在main.js中引入
import "./plugins/vant.js"

六、vuex的配置

请点击:vuex

七、scss混合(mixins)使用

使用混合mixins中的变量来定义一个n行文本溢出隐藏的公用样式。
1、创建mixins.scss文件

//文本n行溢出隐藏
@mixin ellipsisBasic($clamp:2) {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: $clamp;
}

以上代码中,$clamp是变量,决定最多显示几行文本,默认是显示2行,调用的时候可自行传参设置。

2、在组件中使用

<style rel="stylesheet/scss" lang="scss" scoped>
@import '@/assets/css/mixin.scss';//引用此混合样式p {line-height: 0.42rem;@include ellipsisBasic;//使用此混合样式,默认显示2行}p {width: 100%;line-height: 0.42rem;@include ellipsisBasic(3);//使用此混合样式,默认显示3行font-size: 0.28rem;margin-top: 0.37rem;}   
</style>

还可以添加其他的公共样式,比如:清除浮动,公共的颜色也可以使用

八、使用公共的方法

在项目开发中,多个组件可能会用到一个共同方法,比如时间格式的转换防抖函数节流函数
1、首先新建一个文件夹:commonFunction ,然后在里面建立 一个文件common.js
在这里插入图片描述
建立好之后,在main.js里面引入这个公共方法
在这里插入图片描述
最后是调用这个公共方法
在这里插入图片描述
测试一下,我在公共方法里面写了一个简单的一段代码如下:

export default{login:function(){console.log("1111");}
}

如果在我的login.vue里面控制台输出了:1111,那就说明了我的引入是对的
如下:
在这里插入图片描述


正在完善中···

这篇关于wode项目开发流程(项目开发前配置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697664

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S