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

使用总结

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

在这里插入图片描述

基础

重要组成说明注释
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方法
插件快速实现各种功能时间格式化插件dayjsHbuilder使用tailwindcss

兼容性

例子

  • 各端兼容问题,比如以下代码无法在安卓端运行
<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>

例子

  • 还有一个例子,是可以在网页端运行,但是打包到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 data
            file.write(str(data)+"\n")
        elif isinstance(data, str):
            # Save JSON data
            file.write(data+"\n")
        else:
            raise ValueError("Unsupported data type. Expecting dict or str (JSON).")
app.run(host='0.0.0.0',port=5000) 

CG

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值