uniapp结合uview-ui创建项目关键步骤一步一图教程
创始人
2024-11-15 07:39:24
0

文章目录

  • 1 构建项目准备工作
  • 2 项目创建
    • 2.1 打开开发者工具HBuilderX
    • 2.2 创建一个新的项目
    • 2.3 引入uview-ui组件
    • 2.4 uview-ui组件配置
      • 2.4.1 uview-ui组件简单介绍
      • 2.4.2 修改main.js
      • 2.4.3 修改`page.json`
      • 2.4.4 修改`App.vue`
      • 2.4.5 修改uni.scss
      • 2.4.6 修改index.vue
    • 2.5 api接口封装
      • 2.5.1 多环境封装
      • 2.5.2 封装http请求
      • 2.5.3 api接口调用

1 构建项目准备工作

​ 下载开发工具HBuilderX: 官网地址https://www.dcloud.io/hbuilderx.html,下载后安装即可。

​ 安装Node.js:官网地址https://nodejs.org/zh-cn,下载自己需要的版本,安装完成后配置一下环境变量即可。

2 项目创建

2.1 打开开发者工具HBuilderX

​ 双击HBuilderX图标打开开发者工具,打开后的界面如下图

在这里插入图片描述

2.2 创建一个新的项目

​ 点击HBuilderX工具左上角文件F >>>新建 >>>项目

在这里插入图片描述

​ 在打开的界面里面,输入新建项目的名称,本项目是演示的,所以在这里取的名字是dream21th-example,选着构建项目的模板,在这里我们选择默认模板,本次演示采用的vue版本是2

在这里插入图片描述

​ 上述过程完成之后,点击右下角的创建按钮,就会创建一个项目,项目的目录层次结构如下图所示:

在这里插入图片描述

​ 到这一步,一个简单的uniapp项目就已经创建成功了,后面我们将为项目添加uview-ui组件。

2.3 引入uview-ui组件

​ 选中创建的dream21th-example项目,点击鼠标右键,选择命令行窗口打开所在目录,就是跳出命令行操作界面。如下图所示

在这里插入图片描述

​ 接着在命令行操作行输入下面指令安装uview-ui组件,npm install uview-ui@2.0.36

在这里插入图片描述

​ 安装完成之后,在package-lock.json文件中会有刚才安装的版本信息,在node_modules文件夹下面会包含安装的包。

在这里插入图片描述

2.4 uview-ui组件配置

​ 官网地址:https://www.uviewui.com/components/intro.html

2.4.1 uview-ui组件简单介绍

​ uView是uni-app生态专用的UI框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码, 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网)。但目前除微信小程序,其它小程序平台的兼容可能存在一些问题,后续会针对这方面持续优化。

2.4.2 修改main.js

​ 在main.js文件中增加下面内容引入uview-ui组件

import uView from 'uview-ui' Vue.use(uView) 

在这里插入图片描述

2.4.3 修改page.json

​ 在page.json文件中增加下面内容,引入uview-ui的相关组件

	"easycom": { 		"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" 	}, 

在这里插入图片描述

2.4.4 修改App.vue

​ 修改App.vue文件,在里面增加相关的样式

 

在这里插入图片描述

2.4.5 修改uni.scss

​ 修改uni.scss文件,覆盖原来的样式

@import 'uview-ui/theme.scss'; 

在这里插入图片描述

2.4.6 修改index.vue

​ 修改/pages/index/index.vue在里面增加uview-uibutton组件。点击运行>>>到浏览器>>>chrome,看到确定按钮及样式代表成功。

 

在这里插入图片描述

2.5 api接口封装

2.5.1 多环境封装

​ 实际项目会分很多环境,如dev开发环境、local本地环境、prod生产环境等,针对不同环境,其中配置也有不同。我们在创建一个env.js的文件,该文件放到目录common/config下面,具体的内容如下:

// prod-生产 dev-开发 test-测试 const env = "dev"  const prod = { 	baseUrl: 'http://localhost:8081/admin', // 线上环境' } const dev = { 	baseUrl: 'http://localhost:8080/admin', // 生产环境' }  const test = { 	baseUrl: 'http://localhost:8082/admin', // 测试环境' }  const config = { 	dev, 	prod, 	test, }  export default config[env]  

​ 在main.js文件中,注册env

import config from '@/common/config/env.js' Vue.prototype.$config = config; 

2.5.2 封装http请求

​ 新建目录common/http,在目录里面新建request.js,该文件的具体内容如下:

// 此vm参数为页面的实例,可以通过它引用vuex中的变量 import env from '@/common/config/env.js' module.exports = (vm) => {     // 初始化请求配置     uni.$u.http.setConfig((config) => {         /* config 为默认全局配置*/         config.baseURL = env.baseUrl; /* 根域名 */         config.custom = { catch: true, auth: true }         return config     })      // 请求拦截     uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作         uni.showLoading({             title: '加载中'         });         // 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}         config.data = config.data || {}         // 根据custom参数中配置的是否需要token,添加对应的请求头         if(config?.custom?.auth) {             // 可以在此通过vm引用vuex中的变量,具体值在vm.$store.state中             //config.header['Access-Token'] = vm.$store.state.token             config.header['token'] = uni.getStorageSync("token")         }         return config     }, config => { // 可使用async await 做异步操作         return Promise.reject(config)     })      // 响应拦截     uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/         const data = response.data         // 自定义参数         const custom = response.config?.custom         if (data.code !== '0000') {             // 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示             if (custom.toast !== false) {                 uni.$u.toast(data.msg)             }             // 如果是401授权异常则跳转登录             if('401' == data.code){                 uni.removeStorageSync("token")                 uni.removeStorageSync("userInfo")                 setTimeout(()=>{                     uni.navigateTo({                         url: '/pages/login/login'                     });                 },1000)             }             // 如果需要catch返回,则进行reject             if (custom?.catch) {                 return Promise.reject(data)             } else {                 // 否则返回一个pending中的promise,请求不会进入catch中                 return new Promise(() => { })             }         }         uni.hideLoading();         return data === undefined ? {} : data     }, (response) => {         // 对响应错误做点什么 (statusCode !== 200)         uni.$u.toast("工程师被UFO带走了-_-!");         return Promise.reject(response)     }) }  

​ 引入请求封装,将app参数传递到配置中

// uview-request require('@/common/http/request.js')(app) 

在这里插入图片描述

2.5.3 api接口调用

​ 新建目录common/api,在目录里面新建index.js,在该文件里面编写一个登陆接口:

const http = uni.$u.http const api = {     /**      * 登录      */     login(params) {         return http.post('/user/login', params)     } }  export default api; 

​ 在main.js文件中,注册api

import api from '@/common/api/index.js' Vue.prototype.$api = api; 

​ 修改index.vue在里面添加一个登陆接口,页面的代码如下:

      

​ 点击登陆后,可以看到接口响应成功,至此一个uniapp项目创建完成,小伙伴可以进行后面的迭代开发了。

在这里插入图片描述

相关内容

热门资讯

8分钟了解“潮友会鱼虾蟹塞子概... 8分钟了解“潮友会鱼虾蟹塞子概率计算方式”详细透视开挂辅助脚本-哔哩哔哩;超受欢迎的潮友会鱼虾蟹塞子...
9分钟了解(天天九州麻将)外挂... 您好:天天九州麻将这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
4分钟科普!wpk透视脚本链接... 4分钟科普!wpk透视脚本链接,哈糖大菠萝免费辅助器,大神讲解(有挂教程)-哔哩哔哩哈糖大菠萝免费辅...
十分钟了解“同城游微信游戏辅助... 十分钟了解“同城游微信游戏辅助”详细透视开挂辅助插件-哔哩哔哩;同城游微信游戏辅助免费下载原版,在同...
五分钟了解(八方聚财)外挂透明... 五分钟了解(八方聚财)外挂透明挂辅助下载(透视)AA德州教程(2025已更新)(哔哩哔哩);八方聚财...
7分钟神器!哈糖大菠萝可以开挂... 7分钟神器!哈糖大菠萝可以开挂吗,wepoker插件程序激活码,2025新版技巧(有挂实锤)-哔哩哔...
一分钟了解“丰城呱呱辅助器”详... 一分钟了解“丰城呱呱辅助器”详细透视开挂辅助脚本-哔哩哔哩;丰城呱呱辅助器简单的灵活控制,仅凭一根手...
第二分钟了解(聚友互娱)外挂辅... 第二分钟了解(聚友互娱)外挂辅助软件(透视)存在挂教程(2025已更新)(哔哩哔哩);聚友互娱AI智...
第四分钟体悟!hhpoker脚... 第四分钟体悟!hhpoker脚本下载,aapkoer德州辅助挂下载,AI教程(有挂教程)-哔哩哔哩1...
四分钟了解“多乐跑得私人房间插... 四分钟了解“多乐跑得私人房间插件”详细透视开挂辅助脚本-哔哩哔哩,多乐跑得私人房间插件是用手机号来登...