uni-app开发微信小程序

这篇具有很好参考价值的文章主要介绍了uni-app开发微信小程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

技术框架

编辑器:HubilderX
运行环境:微信开发者工具
技术栈:uni-app + vue + uView + uCharts + LeanCloud

创建微信小程序项目时,我才用了vue前端框架

需求

uniapp开发微信小程序,微信小程序,uni-app,javascript

数据库设计

uniapp开发微信小程序,微信小程序,uni-app,javascript

搭建项目

PS:用的是HbuilderX编辑器

1. 注册微信小程序

注册完后,获取微信小程序的AppID,并在manifest.json文件配置;
uniapp开发微信小程序,微信小程序,uni-app,javascript

2. 导入uView和uCharts组件库

使用uni-app内置的插件市场下载插件到uni.modules中,按照其要求安装
uniapp开发微信小程序,微信小程序,uni-app,javascript

  • uView安装
    使用 uni-app 内置的插件配置下载到 uni.modules 中,链接如下:
    https://ext.dcloud.net.cn/plugin?id=1593
    在根目录的 main.js 中引入 uView 主 JS 库,在根目录的 uni.scss 中引入 uView 的全
    局 SCSS 主题文件,即可使用 uView 中的组件。
  • uCharts安装
    与uView的导入方式一样,都是使用uni-app内置的插件市场下载插件到uni.modules
    中,即可使用。

导入静态资源

根目录 static 存放静态资源

  • font:阿里图标;
  • img:图片
  • style:初始化的样式,这里我用了ColorUI,有兴趣可以自行了解

路由配置

还可以设置全局样式、配置底部tab栏和设置启动小程序时的启动页面

在根目录 pages.json 配置路由

{
	// 路由菜单
	"pages" : [
		{
            "path" : "pages/list/detail",
            "style" : {
                "navigationBarTitleText" : "清单详情",// 标题
                "enablePullDownRefresh" : false		// 是否下拉刷新
            }
        },
	],
	"globalStyle" : {
		//...
	},
	// 底部tab栏配置
	"tabBar" : {
		"color" : "#797e83",
        "selectedColor" : "#ff5566",
        "list" : [
        	{
			    "text" : "首页",
			    "pagePath" : "pages/index/index",
			    "iconPath" : "static/icon/index.png",
			    "selectedIconPath" : "static/icon/index1.png"
			},
        ]
	},
	"condition" : {
		//模式配置,仅开发期间生效
		"current" : 0, //当前激活的模式(list 的索引项)
		"list" : [
            {
                "name" : "", //模式名称
                "path" : "pages/index/index", //启动页面,设置为首页
                "query" : "" //启动参数,在页面的onLoad函数里面得到
            }
        ]
	}
}

引入vuex

由于我比较喜欢vue的开发,比微信小程序的原生语法更高效,我觉得能不能使用vue去开发,所以找到了uni-app,但开发中发现uni-app对vue的高级语法不兼容,这是后话了。

store/index.js

import  Vue  from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

const store = new Vuex.Store({
	state: {
		isLogin: false,//用于个人清单页的数据获取
	},
	mutations: {
		set_isLogin(state,isLogin) {
			state.isLogin = isLogin;
			uni.setStorageSync('isLogin', isLogin);
		},
	}
})

封装数据请求

思路:request.js封装uni.request,api.js二次封装request.js导出的get\post\put\delete方法

我这里请求的是LeanCloud云数据库存储,没有服务器和后端,所以需要符合LeanCloud的请求头规范

utils\request.js
由于不能用axios,所以封装uni-app提供的uni.request,并导出get\post\put\delete方法

let baseUrl = 'https://XXX.com';
		// 数据请求
const $http = function(url,method,data={}) {
		return new Promise((resolve,reject)=>{
			uni.request({
				url: baseUrl+url,
				method,
				data,
				header: {//  请求头符合LeanCloud规范,如果后端的接口有token请求可以自定义
					"X-LC-Id": "6zl0SNVm3IOBBPtEUSXea5su-gzGzoHsz",
					"X-LC-Key": "6QrXp3mYKnT2z7Xb5c3PtGbt",
					"Content-Type": "application/json"
				},
				
				success: (res) => {
					resolve(res);
				},
				fail: (err) => {
					reject('请求失败',err);
				}
			})
		});
}

export const $get = function(url,data={}) {
	return $http(url,'GET',data);
}
export const $post = function(url,data={}) {
	return $http(url,'POST',data);
}
export const $put = function(url,data={}) {
	return $http(url,'PUT',data);
}
export const $delete = function(url,data={}) {
	return $http(url,'DELETE',data);
}

utils\api.js:

import { $get,$post,$put,$delete } from "./request.js";

// 获取当前用户的全部个人任务列表
export const $getList = (shortId) =>{
	let url = `/1.1/classes/lists?where={"shortId":"${shortId}"}`;
	return $get(url);
}

登陆模块

微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/index.html
以下是微信方制定的开发流程
uniapp开发微信小程序,微信小程序,uni-app,javascript
获取用户微信名和头像

wx.getUserProfile({
  desc: '获取您的头像和昵称',
});

uniapp开发微信小程序,微信小程序,uni-app,javascript

小程序生命周期

  • onLoad:初次加载页面只渲染一次
  • onShow:页面显示
  • onReady:初次加载页面只渲染一次
  • onUnload:页面卸载
  • onHide:页面隐藏,一般是页面跳转用到

一般在onShow中获取数据文章来源地址https://www.toymoban.com/news/detail-572753.html

页面跳转

  1. 跳转到底部tab栏页面
uni.switchTab({
	url:'../my/my'
})
  1. 跳转到除底部tab栏以外的页面(可带参数)
uni.navigateTo({
	url:'./group?objectId='+objectId
})
  1. 页面A跳转页面B,从页面B返回页面A时,带返回值并处理返回值
// 页面A
getListId(objectId) {
  uni.navigateTo({
	url:'../list/detail?objectId=' + objectId,
	events:{
		con: (data)=> {
			// 找出下标,并修改
			// console.log('aaa',this.allList);
			let index = this.allList.findIndex(item=>{
				return item.objectId === data.objectId;
			});
			this.allList.splice(index,1,data);
			this.id = ['收集箱','备忘录','执行清单','等待清单'].indexOf(data.type);
			this.type = data.type;
			console.log('下标',this.id);
		}
	}
},

// 页面B
// 点击修改并跳转,并传参
val_type(obj) {
	// 返回数据给页面A
	const eventChannel = this.getOpenerEventChannel();
	const obj = {...}
	eventChannel.emit('con', obj);
	// 跳转至页面A
	uni.switchTab({
		url:'./list'
	});
	// 或者直接返回到页面A
	uni.navigateBack();
},

图表展示

<!-- 图表展示 -->
<view class="charts-box">
    <qiun-data-charts 
      type="pie"
      :opts="opts"
      :chartData="chartData"
      :canvas2d="true"
      canvasId="dYWDFpyAVgAHeyRicapcCxuOtkcwjBZQ"
    />
  </view>
data() {
	return {
		chartData: {},// 图表
		opts: {
	      // color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
	        color: ["#EE6666","#3CA272"],
	        padding: [5,5,5,5],
	        extra: {
	          pie: {
	            activeOpacity: 0.5,
	            activeRadius: 10,
	            offsetAngle: 0,
	            labelWidth: 15,
	            border: true,
	            borderWidth: 3,
	            borderColor: "#FFFFFF",
	            linearType: "custom"
	          }
	        }
	      }
	}	
}

到了这里,关于uni-app开发微信小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • VUE(uni-app框架)开发微信小程序③-显示隐藏

    VUE(uni-app框架)开发微信小程序③-显示隐藏

    uni-app控制显示隐藏的方式有两种,【v-if】 和   【v-show】 v-if:通过控制虚拟dom树的节点来达到控制式样的显示和隐藏,当参数为false的时候,该节点被删掉,当为true的时候则显示。 v-show:通过css样式中的dispaly:none来控制元素的显示和隐藏 代码如下: 显示效果如下:  通

    2024年02月16日
    浏览(11)
  • uni-app 开发微信小程序 自动化编译/启动项目

    uni-app 开发微信小程序 自动化编译/启动项目

          最近开发一个uni-app的小程序项目,因为习惯使用vscode 而项目不得不借助hbuderx 运行,微信开发工具调试,偶尔还需要使用 ios模拟器, 8g内存的mac 就变的异常卡顿,所以就研究了下通过npm命令去编译、 运行等工程化配置, 这样就不用运行hbuderx 减少内存使用,顺便 

    2024年02月07日
    浏览(50)
  • 【用vue开发微信小程序】(uni-app)(自用,不推荐参考)

    【用vue开发微信小程序】(uni-app)(自用,不推荐参考)

    以前自己只练习过开发些原生微信小程序,改用uni框架试试,简单记录下流程以及遇到的些问题。(记的东西有点杂,自用 🙏看起来繁杂请见谅) (1)先全局安装 npm install -g @vue/cli (只需要安装一次,安装过后就不用安装了) PS : 直接npm install -g@vue/cli 安装 可能会报错

    2024年02月09日
    浏览(13)
  • uni-app开发微信小程序 web-view通讯

    uni-app开发微信小程序 web-view通讯

    最近开发了一个微信小程序嵌套vue页面 vue页面 有时候会使用到微信小程序的api 但是有的api他h5是不支持的  官方文档中提供的两种方法 @message 内嵌的h5页面不支持 Window的postMessage 在h5端使用没啥问题,这该死的uni-app页面不管怎么弄都会报那个window的错  还是我太菜了。。。

    2024年02月19日
    浏览(46)
  • 如何用uni-app+vue3+vant开发微信小程序

    如何用uni-app+vue3+vant开发微信小程序

    uni-app之前一直只支持vue2语法, 2021年8月:新版支持 了vue3 开发,App平台编译器升级为 Vite; 新版 uni-app 框架主要做了三大改进: 重写框架内核:基于 vue3 + ts 重写内置组件和API,实现更彻底、更高效的 tree-shaking ; 新增支持 Vite 构建工具,在H5平台实现秒开预览; 新增支持

    2024年02月09日
    浏览(7)
  • uni-app开发微信小程序 vue3写法添加pinia

    uni-app开发微信小程序 vue3写法添加pinia

    使用uni-app开发,选择vue3语法,开发工具是HBliuderX。虽然内置有vuex,但是个人还是喜欢用Pinia,所以就添加进去了。 Pinia官网连接 第一步: 在项目根目录下执行命令: npm install pinia 第二步: 配置main.js文件 第三步,使用: 创建store文件夹、创建store/index.js 然后创建store/modu

    2024年02月03日
    浏览(13)
  • uni-app开发微信小程序,H5 关于压缩上传图片的问题

    uni-app开发微信小程序,H5 关于压缩上传图片的问题

    文章目录 前言 一、为什么要压缩图片 二、图片压缩方式 1. 微信小程序​​​​​​​ 2. H5 总结 关于微信小程序、H5兼容性问题,今天就压缩以及上传图片做一个可实现方法的简要阐述。 在使用uni-app开发小程序及H5的具体业务中,我们会遇到需要让用户上传本地图片的场景

    2024年02月02日
    浏览(10)
  • VUE(uni-app框架)开发微信小程序①-搭建脚手架

    VUE(uni-app框架)开发微信小程序①-搭建脚手架

    一,脚手架搭建 前提:搭建脚手架的前提是需要装node.js,因为需要用到npm。 下载官网:下载 | Node.js 中文网 (nodejs.cn) 根据自己需要下载一个适合自己的版本,然后点击安装,安装完成后在命令提示窗口输入 node -v如果有版本信息就说明安装成功了  接下来: 1.全局安装: np

    2024年02月11日
    浏览(13)
  • uni-app开发微信小程序经常遇到的一些问题及解决方案

       可以使用uni.getUserInfo接口获取用户信息。需要用户授权。   可以使用uni-app提供的页面组件内置下拉刷新功能,也可以自定义下拉刷新组件。   可以在页面onReachBottom方法中监听上拉事件,当触发上拉事件时,触发加载更多数据的操作。     可以使用uni.uploadFile接口实现图

    2024年02月14日
    浏览(13)
  • uni-app开发微信小程序的报错[渲染层错误]排查及解决

    uni-app开发微信小程序的报错[渲染层错误]排查及解决

    一、报错信息 [渲染层错误] Framework nner error (expect FLOW INITIALCREATION end but get FLOW CREATE-NODE) 二、原因分析及解决方案 第一种 原因:基础库版本的原因导致的。 解决: 1.修改调试基础库版本 2.详情—本地设置—调试基础库,选择了最新的版本 第二种 原因:分包文件中引入了其

    2024年02月05日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包