VUE+HBuilder的uniapp技术路线开发应用使用总结

使用总结

  • 本来想做一个记录日常数据的应用,主要在Android端使用,后来发现在uniapp中使用sqllite数据库不是像原生中那样简单(所以当前准备去进行另一个路线,就是给我使用的电脑都安装一个portalble的服务端,用来记录数据,这样也不会占用手机的空间了)。当前的使用体验如下:
  • 考虑到兼容性问题,HBuilder比较适合写UI加服务端存储的项目(各种小程序,网页商城)(当然其他功能也可以进行uniapp的安卓原生插件开发或者与原生Android交互传递数据)
  • Hbuilder编辑器在使用打包时要进行登录,手机绑定。使用中还出现了以下问题:

在这里插入图片描述

  • 本地打包3.1.10版本起需要申请 Appkey。

基础

  • 官方文档: https://uniapp.dcloud.net.cn/quickstart.html
重要组成说明注释
vue的基础语法插值和数据绑定,条件与循环等重要
App.vue应用入口文件,监听应用生命周期、配置全局样式、配置全局的存储globalData处理app启动,切换时的命令,可以不用管
main.js/main.uts初始化vue实例、定义全局组件、使用需要的插件如 i18n、vueximport作用
pages.json页面管理,pages数组中第一项表示应用启动页重要配置文件
vue.config.js是一个可选的配置文件
vite.config.js是一个可选的配置文件
代码主要复用方式认识Vue 的 export、export default、import重要,例子
各种控件比如label控件重要
uni.scss整体控制应用的风格使用<style lang="scss">
存储uniapp本地kv存储:uni.getStorageSync
父子组件props传递值例子
Vue.mixin混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。提高复用性,在全局范围内共享代码
uView组件库uni-app 分不清的全局变量this, uni, $u, vm, uni.$u, this.$u,API集中管理:uni.$u.api.this.$u.api.register(data)=>http://192.168.0.30:8000/api/register
状态管理Vuex状态管理模式this.$store.dispatch:调取store里的user.js的login方法
插件快速实现各种功能时间格式化插件dayjs,Hbuilder使用tailwindcss

兼容性

  • 比如文件系统 uni.getFileSystemManager(),app平台需要使用uni-app x支持,另见,但是uni-app x是用的uts语言(uni-app x 没有使用js和webview,它基于 uts 语言。在App端,uts在iOS编译为swift、在Android编译为kotlin,完全达到了原生应用的功能、性能。并且uni-app x不支持vue2,新基座名称默认为uni-app x(之前叫HBuilder))。

例子

  • 各端兼容问题,比如以下代码无法在安卓端运行
<template><view class="container"><button @click="createAndWriteTxt">创建并写入txt文件</button></view>
</template><script>
export default {methods: {createAndWriteTxt() {// 创建文件内容const content = "Hello, this is a txt file content.";// 创建Blob对象const blob = new Blob([content], { type: "text/plain" });// 创建下载链接const link = document.createElement("a");link.href = URL.createObjectURL(blob);link.download = "example.txt";// 模拟点击下载链接document.body.appendChild(link);link.click();// 移除下载链接document.body.removeChild(link);},},
};
</script><style>
.container {display: flex;justify-content: center;align-items: center;height: 100vh;
}text {font-size: 16px;color: #007aff;text-decoration: underline;cursor: pointer;
}
</style>

CG

  • https://playcode.io/vue

  • https://gitee.com/iamxcd/yq-uniapp

  • 基于laravel+uniapp 开发的记账APP

  • 最好的 6 个免费天气 API 接口对比测评

  • 我为什么要选择flutter

  • AndroPHP是一款Android应用程序,它允许您在Android设备上搭建PHP服务器 : 手机搭建PHP+MYSQL完美运行WordPress

  • 【XIAO ESP32S3 sense 通过 ESPHome 与 Home Assistant 连接】

  • 第三篇 香橙派的外设开发基础(中)— 串口篇

  • 还有一个例子,是可以在网页端运行,但是打包到app无法运行

  • 前端

				fetch('http://192.168.31.28:5000/upload', {method: 'POST', headers: {'Content-Type': 'application/json',},body: JSON.stringify(data),}).then(response => {window.alert("ok !");}).then(responseData => {// window.alert("sometext2");}).catch(error => {window.alert(error);});
  • 后端
from flask import Flask, request
app = Flask(__name__)
from flask_cors import CORS # pip install flask_cors
CORS(app)@app.route('/')
def hello_world():return 'Hello, World!'@app.route('/upload', methods=['POST', 'GET'])
def upload():if request.method == 'POST':content_type = request.headers.get('Content-Type')if content_type and 'application/json' in content_type:user_info = request.get_json(force=True)print(user_info)save_to_text_file(user_info, 'data.txt')else:# Processing form data (as a dictionary)user_info = request.form.to_dict()print(user_info)save_to_text_file(user_info, 'data.txt')return "Data received and saved successfully."else:save_to_text_file("user_info", 'data.txt')return "Data received and saved successfully."def save_to_text_file(data, filename):with open(filename, 'a') as file:if isinstance(data, dict):# Save dictionary datafile.write(str(data)+"\n")elif isinstance(data, str):# Save JSON datafile.write(data+"\n")else:raise ValueError("Unsupported data type. Expecting dict or str (JSON).")
app.run(host='0.0.0.0',port=5000) # 访问 http://127.0.0.1:5000/ 即可

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

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

相关文章

java中使用rabbitmq

文章目录 前言一、引入和配置1.引入2.配置 二、使用1.队列2.发布/订阅2.1 fanout(广播)2.2 direct(Routing/路由)2.3 Topics(主题)2.4 Headers 总结 前言 mq常用于业务解耦、流量削峰和异步通信,rabbitmq是使用范围较广,比较稳定的一款开源产品,接下来我们使用springboot的sta…

角蜥优化算法 (Horned Lizard Optimization Algorithm ,HLOA)求解无人机路径优化

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。 二、算法介…

数据结构:图及相关算法讲解

图 1.图的基本概念2. 图的存储结构2.1邻接矩阵2.2邻接表2.3两种实现的比较 3.图的遍历3.1 图的广度优先遍历3.2 图的深度优先遍历 4.最小生成树4.1 Kruskal算法4.2 Prim算法4.3 两个算法比较 5.最短路径5.1两个抽象存储5.2单源最短路径--Dijkstra算法5.3单源最短路径--Bellman-…

Dataset 读取数据

Dataset 读取数据 from torch.utils.data import Dataset from PIL import Image import osclass Mydata(Dataset):def __init__(self,root_dir,label_dir):self.root_dir root_dir #根目录 dataset/trainself.label_dir label_dir #标签的后面链接目录 ants_ima…

windows系统玩游戏找不到d3dx9_43.dll缺失,无法启动此程序的解决方法

今日&#xff0c;我们要深入讨论d3dx9_43.dll文件的重要性及其缺失问题。最近&#xff0c;我也遇到了这个文件丢失的困扰&#xff0c;因此想借此机会与大家分享如何解决d3dx9_43.dll缺失的问题。 一.电脑d3dx9_43.dll丢失会提示什么&#xff1f; 关于电脑提示d3dx9_43.dll丢失…

神经网络实战前言

应用广泛 从人脸识别到网约车&#xff0c;在生活中无处不在 未来可期 无人驾驶技术便利出行医疗健康改善民生 产业革命 第四次工业革命——人工智能 机器学习概念 机器学习不等价与人工智能20世纪50年代&#xff0c;人工智能是说机器模仿人类行为的能力 符号人工智能 …

【环境配置】Linux MySQL8 忘记密码解决措施

本片博客介绍 Linux 操作系统 Ubuntu 下&#xff0c;MySQL8 忘记密码怎么重新设置&#xff0c;笔者亲测有效&#xff0c;分享给大家。 查看 MySQL 版本 $ mysql --version停止 MySQL 服务器&#xff0c;并查看状态是否变更为 Server shutdown complete # 等价命令sudo syste…

Django简易用户登入系统示例

Django简易用户登入系统示例 1&#xff09;添加url和函数的对应关系&#xff08;urls.py) urlpatterns [ path(login/, views.login), #login:url路径&#xff0c;views.login:对应的函数 ]2&#xff09;添加视图函数&#xff08;views.py) def login(req):if…

IDEA + Git + GitHub(保姆级教学)

文章目录 IDEA Git GitHub1.IDEA克隆远程仓库到本地仓库1.创建一个GitHub远程仓库test12.IDEA克隆仓库到本地1.复制远程仓库地址2.创建一个版本控制项目3.克隆到本地仓库4.克隆成功 2.IDEA将本地项目push到远程仓库1.在这个项目下新建一个java模块1.新建模块2.填写模块名3.在…

【CSP试题回顾】202006-1-线性分类器

CSP-202006-1-线性分类器 解题思路 线性分类问题&#xff0c;即根据给定的数据点和分类界限&#xff0c;判断是否存在一条线能够将属于不同类别的点完全分开。具体来说&#xff0c;数据点被分为两类&#xff0c;标记为A和B&#xff0c;我们要找出是否存在一个线性决策边界&…

gpt不能发送信息了?

文章目录 问题注意步骤解决后 问题 注意步骤 清理所有cookie和浏览数据&#xff0c;可保存密码 解决后

C++的类与对象(五):赋值运算符重载与日期类的实现

目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述&#xff1a;内置类型可直接用运算符比较&#xff0c;自定义类型的对象是多个…

虚拟 DOM:前端性能优化的秘密

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【大厂AI课学习笔记NO.72】AI与云计算

AI项目依靠云计算&#xff0c;借助云的力量&#xff0c;快速的启动业务&#xff0c;是比较好的一种选择。 AI模型训练过程中&#xff0c;出现算力突增&#xff0c;云计算成本低。 云平台提供一站式解决方案&#xff0c;创业公司的选择。 云端AI和边缘端的AI&#xff0c;是我们…

OpenCV filter2D函数详解

OpenCV filter2D函数简介 OpenCV filter2D将图像与内核进行卷积&#xff0c;将任意线性滤波器应用于图像。支持就地操作。当孔径部分位于图像之外时&#xff0c;该函数根据指定的边界模式插值异常像素值。 该函数实际上计算相关性&#xff0c;而不是卷积&#xff1a; filter…

Day30:安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计

目录 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF题目&源码审计 开发指南-NodeJS-安全SecGuide项目 思维导图 JS知识点&#xff1a; 功能&#xff1a;登录验证&…

基于遗传算法GA的机器人栅格地图最短路径规划,可以自定义地图及起始点(提供MATLAB代码)

一、原理介绍 遗传算法是一种基于生物进化原理的优化算法&#xff0c;常用于求解复杂问题。在机器人栅格地图最短路径规划中&#xff0c;遗传算法可以用来寻找最优路径。 遗传算法的求解过程包括以下几个步骤&#xff1a; 1. 初始化种群&#xff1a;随机生成一组初始解&…

分布式执行引擎ray入门--(2)Ray Data

目录 一、overview 基础代码 核心API&#xff1a; 二、核心概念 2.1 加载数据 从S3上读 从本地读&#xff1a; 其他读取方式 读取分布式数据&#xff08;spark&#xff09; 从ML libraries 库中读取&#xff08;不支持并行读取&#xff09; 从sql中读取 2.2 变换数据…

Pandas DataFrame 写入 Excel 的三种场景及方法

一、引言 本文主要介绍如何将 pandas 的 DataFrame 数据写入 Excel 文件中&#xff0c;涉及三个不同的应用场景&#xff1a; 单个工作表写入&#xff1a;将单个 DataFrame 写入 Excel 表中&#xff1b;多个工作表写入&#xff1a;将多个 DataFrame 写入到同一个 Excel 表中的…

Spring boot2.7整合jetcache 本地linkedhashmap缓存方案

好 上文 Spring boot2.7整合jetcache 远程redis缓存方案 我们讲完了 远程实现方案 本文 我们来说说 本地 jetcache解决方案 首先是 application.yml 在jetcache下加上 local:default:type: linkedhashmapkeyConvertor: fastjson我们技术用的 本地缓存 linkedhashmap 这里 我们…