当前位置:   article > 正文

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

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

例子

  • 还有一个例子,是可以在网页端运行,但是打包到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);
					});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 后端
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) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

CG

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/243090
推荐阅读
相关标签
  

闽ICP备14008679号