当前位置: 首页 > news >正文

低代码可视化-uniapp响应式数据data-代码生成器

在uniapp框架中,data 是一个核心的概念,它代表了组件或uniapp实例中的响应式数据。这些数据是组件状态的基础,uniapp会根据这些数据的变化来更新DOM,从而保持视图与数据的同步。

data 的特点

  • 响应式:uniapp使用一种称为“响应式系统”的机制来追踪数据的变化,并在数据变化时更新DOM。这意味着当你修改data中的某个属性时,uniapp会自动更新与该属性相关的视图。

  • 局部状态:在uniapp组件中,data定义的数据是局部的,它只属于该组件实例。不同的组件实例之间不会共享同一个data对象。

  • 初始化:data中的数据是在组件或Vue实例创建时初始化的,你可以在创建后通过uniapp实例或组件实例来访问和修改这些数据。

定义文本变量

DIY可视化如果想把静态的文本显示转换为data里的变量,只需要开启是否变量即可。比如我们定义字段标识为meessage。代码转换后模板会变成{{message}},data里会定义message变量。

改变变量值

我们采用点击事件改改变值。

配置点击事件

扩展data知识

uniapp里的data里会通过JSON树型格式数据,比如下方数据data下一级直接用this.message,二级用this.form.input。实际需求大家可以根据自己的变量标识来设置。

 生成代码

<template><view class="container container329152"><text class="diygw-col-24">{{ message }}</text><button @tap="navigateTo" data-type="changeMessageFunction" class="diygw-col-24 btn-clz diygw-btn-default">点击改变meessage值</button><u-form :model="form" :rules="formRules" :errorType="['message', 'toast']" ref="formRef" class="flex diygw-form diygw-col-24"><u-form-item class="diygw-col-24" label="日期" prop="date"><u-input @click="formData.showDate = true" class="" placeholder="请选择" v-model="form.date" type="select"></u-input><u-calendar maxDate="2050-12-31" v-model="formData.showDate" mode="date" @change="changeFormDate"></u-calendar></u-form-item><u-form-item class="diygw-col-24" label="标题" prop="input"><u-input :focus="formData.inputFocus" placeholder="请输入提示信息" v-model="form.input"></u-input></u-form-item><u-form-item class="diygw-col-24" label="标题" prop="textarea"><u-input maxlength="200" height="60px" class="" placeholder="请输入提示信息" v-model="form.textarea" type="textarea"></u-input></u-form-item></u-form><view class="clearfix"></view></view>
</template><script>export default {data() {return {//用户全局信息userInfo: {},//页面传参globalOption: {},//自定义全局变量globalData: { data_id: 0 },message: `DIY可视化例子`,form: {date: '',input: '',textarea: ''},formRules: {},formData: {showDate: false,inputFocus: false}};},onShow() {this.setCurrentPage(this);},onLoad(option) {this.setCurrentPage(this);if (option) {this.setData({globalOption: this.getOption(option)});}this.init();},onReady() {this.$refs.formRef?.setRules(this.formRules);},methods: {async init() {await this.initResetform();},// 改变MEESSAGE 自定义方法async changeMessageFunction(param) {let thiz = this;this.meessage = '值被点击后改变了';},changeFormDate(evt) {this.form.date = evt.result;},initResetform() {this.initform = JSON.stringify(this.form);//如果想给表单默认初始值,其中row为某一行数据也可能是API返回的结果集,然后给到this.form//this.form = this.$tools.changeRowToForm(row,this.form)},resetForm() {this.form = JSON.parse(this.initform);},async submitForm(e) {this.$refs.formRef?.setRules(this.formRules);this.$nextTick(async () => {let valid = await this.$refs.formRef.validate();if (valid) {//保存数据let param = this.form;let header = {};let url = '';if (!url) {this.showToast('请先配置表单提交地址', 'none');return false;}let res = await this.$http.post(url, param, header, 'json');if (res.code == 200) {this.showToast(res.msg, 'success');} else {this.showModal(res.msg, '提示', false);}} else {console.log('验证失败');}});}}};
</script><style lang="scss" scoped>.btn-clz {padding-top: 20rpx;border-bottom-left-radius: 12rpx;color: #fff;padding-left: 20rpx;padding-bottom: 20rpx;border-top-right-radius: 12rpx;margin-right: 10rpx;background-color: #07c160;margin-left: 10rpx;overflow: hidden;width: calc(100% - 10rpx - 10rpx) !important;border-top-left-radius: 12rpx;margin-top: 10rpx;border-bottom-right-radius: 12rpx;margin-bottom: 10rpx;text-align: center;padding-right: 20rpx;}.container329152 {}
</style>

http://www.lryc.cn/news/455709.html

相关文章:

  • 10.7学习
  • 基础算法之前缀和--Java实现(下)--LeetCode题解:-和为 K 的子数组 - 和可被 K 整除的子数组 -连续数组-矩阵区域和
  • 序列化与反序列化基础及反序列化漏洞(附案例)
  • Khronos:动态环境下时空度量语义SLAM的统一方法
  • 一个迷茫的25岁前端程序员的自述
  • 多文件并发多线程MD5工具(相对快速的MD5一批文件),适配自定义MD5 Hash I/O缓存。
  • Pikachu-url重定向-不安全的url跳转
  • 如何下载和安装CLion,图文详解
  • vue3导入本地图片2种实现方法
  • leetcode 刷题day36动态规划Part05 背包问题(完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶))
  • 检查jar冲突,查找存在相同class的jar
  • PhpStudy-PHP5.4.45后门漏洞应用程序(C++/base64/winhttp)
  • 【优选算法】(第二十七篇)
  • 学习Flask框架
  • Elasticsearch:使用 LLM 实现传统搜索自动化
  • 人脸表情行为识别系统源码分享
  • ThreadLocal原理解析及面试
  • 探索未来:mosquitto-python,AI领域的新宠
  • C++版iwanna1
  • LSTM变种模型
  • Python进阶--函数进阶
  • elasticsearch 8.2 设置账号密码
  • JavaScript代码如何测试?
  • 案例分享—国外ui设计优秀案例
  • 在JavaScript中,改变this指向的call,apply,bind有什么区别,原理分别是什么?
  • Redis 缓存策略详解:提升性能的四种常见模式
  • 怎么建设网站吸引并留住客户
  • 培训行业为什么要搭建自己的知识付费小程序平台?集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序
  • Linux:Linux进程概念
  • 专题九_递归_算法专题详细总结