配置uniapp调试环境

目录

uni-app介绍

uni-app开发工具HBuilderX

创建项目前提条件

uni-app项目结构

配置mumu模拟器

uni-app生命周期

1.应用生命周期 小程序规范

2.页面生命周期-小程序规范

3.组件生命周期 vue规范

uni-app登录按钮方法

uni-app发布安卓app


uni-app介绍

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

官网地址:uni-app官网 (dcloud.io)

uni-app开发工具HBuilderX

官网地址:HBuilderX-高效极客技巧

创建项目前提条件

安装vue,

创建项目demo代码

vue create -p dcloudio/uni-preset-vue demo

uni-app项目结构

pages.json是全局配置,决定页面文件的路径,窗口样式,原生的导航栏,底部的原生tabbar等,类似于微信小程序中的app.json的页面管理部分

uni.scss是全局样式

App.vue:主组件

Main.js:入口文件

manifest.json:文件是应用的配置文件,用于指定应用的名称、图标、权限等。 提供可视化操作

配置mumu模拟器

模拟器下载地址:https://mumu.163.com/

mumu模拟器的默认端口是7555

在uni-app里设置端口,在uni-app里打开“运行-->运行到手机或模拟器-->Android模拟器端口设置,

在“Android模拟器端口”输入框里输入“7555”

打开模拟器之后运行程序。

uni-app生命周期

uniapp中生命周期分类分为三大类

1.应用生命周期 小程序规范

app.vue中控制

onLaunch 当uniapp初始化完成时触发(全局只触发一次)

onShow 当uniapp启动,或从后台进入前台显示

onhide 当uniapp从前台进入后台

onerror 当uniapp报错时触发

onUniNViewNessage 当nvue页面发送的数据进行监听,可参考nvue向vue铜须

onUnhandledRejection 对未处理的promise拒绝时间监听函数

onPageNotFound页面不存在监听函数

onThemeChange 监听系统主题变化

2.页面生命周期-小程序规范

onInit 只适用于百度小程序 监听页面初始化

onLoad 监听页面加载

onShow 监听页面显示

onHide 监听页面隐藏

onUnload 监听页面卸载

onResize 监听窗口尺寸变化 适用于app,微信小程序,快手小程序

onPullDownRefresh 监听用户下拉动作

onReady 监听页面初次渲染完成

onReachBottom 页面滚动到底部的事件

onTabitemTap 点击tab时触发,参数为objecct

3.组件生命周期 vue规范

参考vue的生命周期

uni-app登录按钮方法

common下request.js文件,配置不同的后端请求路由

const MicorPortUrl='http://192.168.11.149:8616/';
const Micorapi ='http://192.168.18.67:8999/';
const BackupApi ='http://192.168.11.153:8999/';
export default{MicorPortUrl,Micorapi,BackupApi
}

index.vue文件

//引入配置路由文件,在src下common目录下request.js文件中配置路由
import api from '@/common/request.js';
export default {data() {return {focus: true,form:{username: '',// password: '',},imageURL: '../static/bg.png',release: {version: ''}}},methods: {submit() {
// 判断用户是否填写账号密码if(!this.form.username) {
//显示消息提示框。return	uni.showToast({title: '请输入账户',icon:'error',duration: 2000});} 
//请求数据uni.request({url: api.MicorPortUrl + 'Fuji/Login',method: 'post',data: {userName: this.form.username},success: res => {if (res.data.success == true) {
//显示消息提示框。uni.showToast({title: '登录成功',duration: 1000,icon: 'success'});
//保存缓存,将数据存储到本地缓存中指定的key中,会覆盖原来key的内容,异步接口uni.setStorage({key:'login',data:{username:this.form.username,}});
//页面跳转uni.navigateTo({url: '../list/machineFeeding'});	} else {
//显示fail消息提示框。uni.showModal({title: '提示',content: `${res.data.msg}`,confirmColor: '#f9ae3d',showCancel: false,success: function(res) {if (res.confirm) {console.log('用户点击确定');}}});}},fail: err => {console.log(err);}});}}
}

uni-app发布安卓app

采用云打包方式,首先获取appid
—1)DCloud 根据 appid 来判断用户是否有权限进行云打包。既不是所有者、又不是协作者,就无法打包;
—2)打包后的原生应用根据 appid 来管理本地资源。每个appid有独立的沙盒,存储是隔离的;
—3)热更新(wgt升级)通过 appid 来覆盖资源

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 通过setData 给两个变量设置同一个数组时,为什么修改一个变量,另一个会也被修改?

在微信小程序中,使用 setData 方法更新数据时,如果给两个变量设置同一个数组,修改其中一个变量的值会导致另一个变量也被修改的原因是,数组是引用类型的数据,在内存中的存储方式是按引用地址存储。 当你将一个数组赋值…

Linux(进程间通信)

目录 一、通信概念 二、进程间通信机制 1、管道 1.1 匿名管道(Anonymous Pipe) 1.2 命名管道(Named Pipe) 2、信号量 2.1 概念 2.2 API详解 2.3 使用示例 3、消息队列 3.1 概念 3.2 API函数 3.3 应用代码 4、共享内…

湖北咸宁农业三维扫描数字化农业3d打印制造应用-CASAIM中科广电

农业是人类衣食之源、生存之本,是一切生产的首要条件,CASAIM在农业三维扫描和3d打印应用上有丰富经验。 1.三维扫描技术在农业领域的应用 CASAIM三维扫描是集光学、机电和计算机技术于一体的高新无损检测技术,能够对实物的空间外形、结构乃…

adb shell获取安卓设备电量ROM内存帧率等信息

adb shell获取安卓设备电量ROM内存帧率等信息 adb shell指令获取Android设备的运行状态,如电池信息(包含电量百分比,电池状态,电池温度,电池电压,充放电电流),CPU占比,内…

2023年MySQL核心技术面试第一篇

目录 一 . 存储:一个完整的数据存储过程是怎样的? 1.1 数据存储过程 1.1.1 创建MySQl 数据库 1.1.1.1 为什么我们要先创建一个数据库,而不是直接创建数据表? 1.1.1.2基本操作部分 1.2 选择索引问题 二 . 字段:这么多的…

【算法与数据结构】513、LeetCode找树左下角的值

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题用层序遍历来做比较简单,最底层最左边节点就是层序遍历当中最底层元素容器的第一个值…

Nacos基础(2)——nacos的服务器和命名空间 springBoot整合nacos 多个nacos配置的情况

目录 引出nacos服务器和命名空间Nacos服务器命名空间 springBoot整合nacosspringcloud Alibaba 版本与springcloud对应关系引包配置maincontroller 报错以及解决【报错】错误:缺少服务名称报错:9848端口未开放 启动测试引入多个nacos配置多个配置的情况没…

【MCU】SD NAND芯片之国产新选择

文章目录 前言传统SD卡和可贴片SD卡传统SD卡可贴片SD卡 实际使用总结 前言 随着目前时代的快速发展,即使是使用MCU的项目上也经常有大数据存储的需求。可以看到经常有小伙伴这样提问: 大家好,请问有没有SD卡芯片,可以直接焊接到P…

排序算法:快速排序

快速排序算法由 C. A. R. Hoare 在 1960 年提出。它的时间复杂度也是 O(nlogn),但它在时间复杂度为 O(nlogn) 级的几种排序算法中,大多数情况下效率更高,所以快速排序的应用非常广泛。再加上快速排序所采用的分治思想非常实用,使得…

香港服务器怎么打开SSH

​  SSH是一种远程登录协议,可以通过加密方式在网络上安全地传输数据。它允许用户在远程服务器上执行命令,管理文件和目录,并进行其他系统管理任务。 如何打开SSH服务? 1.确认已安装OpenSSH服务器: 你可以通过命令sudoapt-geti…

Excel显示此值与此单元格定义的数据验证限制不匹配怎么办?

总结:1、在编辑excel文档的时候,弹出此时预测单元格定义的数据验证,限制不匹配的提示。2、这是我们点击菜单来的数据菜单。3、然后点击数据工具栏的数据验证下拉按钮。4、在弹出的菜单中选择数据验证的菜单项。5、然后在打开的窗口中点击左下…

Jmeter(二十七):BeanShell PostProcessor跨线程全局变量使用

在性能测试中,两个相关联的接口不一定都在同一个线程组,遇见这种情况时,我们要进行跨线程组传参,此处用登录和查询配送单两个请求举例; 1、登录请求中配置json提取器,将接口返回的token保存在变量中&#…

Python爬虫异常处理实践:处理被封禁和网站升级问题

在这篇文章中,我们将一起探讨Python爬虫异常处理实践,特别关注处理被封禁和网站升级问题。让我们一起来看看如何解决这些问题,提高我们爬虫程序的稳定性和可靠性。   首先,我们要了解为什么会遇到这些问题。网站封禁爬虫的原因主…

从C语言到C++_34(C++11_下)可变参数+ lambda+function+bind+笔试题

目录 1. 可变参数模板 1.1 展开参数包 1.1.1 递归函数方式展开 1.1.2 逗号表达式展开 1.2 emplace相关接口 2. lambda表达式(匿名函数) 2.1 C11之前函数的缺陷 2.2 lambda表达式语法 2.3 函数对象与lambda表达式 3. 包装器 3.1 function包装器…

不同子网络中的通信过程

从输入www.baidu.com经历了什么 一、DNS(网址->IP) 二、ARP(IP->MAC) A->B:有数据发送,数据封装ip之后发现没有主机B的mac地址。然后ARP在本网段广播:检查目标地址和源地址是否在同一…

【程序猿书籍大放送:第二期】《强化学习:原理与Python实战》

🌹欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 爱书不爱输的程序猿:送书第二期 一、搞懂大模型的智能基因,RLHF系统设计关键问答1.RLHF是什么?2.RLHF适用于哪些任务?3…

MySQL日志管理 备份和恢复

备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 而备份、恢复中,日志起到了很重要的作用 #######前言:日志⭐⭐ MySQL 的日志默认保存位置为 /usr/local/mysql/data ##配置文件 vim /etc/my.cnf [mys…

c++23中的新功能之十三Ranges的as系列

一、介绍 在前面反复提到过,c编程的语法也越来越向着自然语言方向发展,今天这个as_函数就是如此,一般学习过英文的都知道as是啥意思。非常容易理解,所以c23中用这个词来描述函数,其实也是非常走心了。 二、as_const …

Git仓库简介

1、工作区、暂存区、仓库 工作区:电脑里能看到的目录。 暂存区:工作区有一个隐藏目录.git,是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区&#xf…

vue数字输入框

目录 1.emitter.JS function broadcast (componentName, eventName, params) {this.$children.forEach(child > {var name child.$options.componentNameif (name componentName) {child.$emit.apply(child, [eventName].concat(params))} else {broadcast.apply(child, …