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

开源免费建站程序用的最多的电子商务和网络营销哪个好

开源免费建站程序用的最多的,电子商务和网络营销哪个好,兰州小程序定制开发,做网站用不用thinkphp在某些场景下#xff0c;我们可能需要自定义Flutter model实体类#xff0c;来创建更加结构化和有组织的代码#xff0c;提高代码的可重用性#xff0c;并增强Flutter应用程序的整体可维护性。 自定义小部件:在创建自己的小部件时#xff0c;可能需要定义自定义数据类型来…在某些场景下我们可能需要自定义Flutter model实体类来创建更加结构化和有组织的代码提高代码的可重用性并增强Flutter应用程序的整体可维护性。 自定义小部件:在创建自己的小部件时可能需要定义自定义数据类型来封装小部件的特定数据和行为。 API集成:在使用API时您可能需要定义自定义数据类型以便以结构化的方式解析和表示响应数据。这有助于更有效地处理和操作数据。 状态管理:在像Provider或Riverpod这样的状态管理解决方案中你可以定义自定义数据类型来表示应用程序的状态并相应地更新它。 表单验证:在构建表单时您可能希望定义自定义数据类型来表示表单字段并对输入值执行验证。 一、认识Flutter的model 1、model类的结构 一般常用的会有以下几个 1、【必须】属性 2、【必须】构造方法 3、【必须】fromJson 序列化 - model实体类 4、【可省】toMaptoJsonmodel实体类 - 序列化 (如果不需要序列化可以缺省) 上述中toMap也可写成toJson。 实际上在Flutter中约定是在将对象转换为json可序列化映射时更多地使用toJson()而不是toMap()。但是只要方法的功能清楚实际的方法名称并不重要。 import package:wechat/tools/convert_util.dart;class OrderDataEntity {//【必须】属性String? type;//【必须】构造方法OrderDataEntity({required this.type,});//【必须】Map转Modelfactory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {return OrderDataEntity(// 这里根据情况选择是否可以为空然后指定默认值type: asTString(jsonRes[type]),// type: asTString(jsonRes[type]) ?? ,);}//【可省】model转MapMapString, dynamic toJson() {type: type,}; }除了常用的还有不常用的 5、【可省】toString这个重写的Object的方法 toString一般不需要重写使用orderDataEntity.toJson().toString()替代即可 6、【可省】copy拷贝数据时可实现copy方法 //【可省】一般不需要重写使用toJson.toString()替代 override String toString() {return OrderDataEntity{name: $type}; }//【可省】提供copy功能 OrderDataEntity copy() {return OrderDataEntity(type: type,); }2、可空类型处理 对于变量声明如果是网络返回的建议声明为可空类型如果是自定义组件使用建议声明为不可空类型。 可空类型 String? type; // 对应的构建model type: asTString(jsonRes[type]),不可空类型 String type; // 对应的构建model type: asTString(jsonRes[type])??,二、属性为基本数据 对于简单数据类型可以直接转换 数字:num、int、double 字符串:String 布尔:bool 不同类型在使用上的区别 1、替换属性类型 2、替换fromJson中的泛型与默认值不可空类型才需要默认值 // 示例 String type; num age;type: asTString(jsonRes[type]) ?? , age: asTnum(jsonRes[age]) ?? 0,三、属性为集合 1、集合ListString import package:wechat/tools/convert_util.dart;class OrderDataEntity {// 属性String? type;ListString? orderList;// 构造方法OrderDataEntity({required this.type,required this.orderList,});// model转MapMapString, dynamic toJson() {type: type,orderList: orderList,};// Map转Modelfactory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {ListOrderDataOrderList orderList [];for (final dynamic item in (jsonRes[orderList] ?? [])) {orderList.add(OrderDataOrderList.fromJson(asTMapString, dynamic(item)!));}return OrderDataEntity(type: asTString(jsonRes[type]) ?? ,orderList: asListTString(jsonRes[orderList]),);} }2、嵌套ListMapString, dynamic class OrderDataOrderList {ListMapString, dynamic? saleGoodsAppearanceImagesList;OrderDataOrderList({required this.saleGoodsAppearanceImagesList,});MapString, dynamic toJson() {saleGoodsAppearanceImagesList: saleGoodsAppearanceImagesList,};factory OrderDataOrderList.fromJson(MapString, dynamic jsonRes) {ListMapString, dynamic? saleGoodsAppearanceImagesList;if (jsonRes[saleGoodsAppearanceImagesList] ! null) {saleGoodsAppearanceImagesList ListMapString, dynamic.from(jsonRes[saleGoodsAppearanceImagesList].map((item) {return MapString, dynamic.from(item);}).toList());}return OrderDataOrderList(saleGoodsAppearanceImagesList: saleGoodsAppearanceImagesList,);} }四、属性为model 1、model 这个相当于套娃 1、在生成toJson时调用子model的toJson即可 2、在生成tfromJson时调用子model的fromJson即可 import package:wechat/tools/convert_util.dart;class OrderDataEntity {// 属性String? type;OrderDataOrderList? orderList;// 构造方法OrderDataEntity({required this.type,required this.orderList,});// model转MapMapString, dynamic toJson() {type: type,orderList: orderList?.toJson(),};// Map转Modelfactory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {return OrderDataEntity(type: asTString(jsonRes[type]) ?? ,orderList: OrderDataOrderList.fromJson(jsonRes[orderList]),);} }class OrderDataOrderList {int? id;OrderDataOrderList({required this.id,});MapString, dynamic toJson() {id: id,};factory OrderDataOrderList.fromJson(MapString, dynamic jsonRes) {return OrderDataOrderList(id: asTint(jsonRes[id]),);} }2、嵌套ListModel // 方法1使用工具asListT工具 factory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {return OrderDataEntity(orderList: asListTOrderDataOrderList(jsonRes[orderList],fromJson: (json) OrderDataOrderList.fromJson(json)),); }// 方法2等价于自己遍历解析 factory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {ListOrderDataOrderList orderList [];for (final dynamic item in (jsonRes[orderList] ?? [])) {orderList.add(OrderDataOrderList.fromJson(asTMapString, dynamic(item)!));}return OrderDataEntity(orderList: orderList,); }完整示例 import package:wechat/tools/convert_util.dart;class OrderDataEntity {// 属性String? type;ListOrderDataOrderList? orderList;// 构造方法OrderDataEntity({required this.type,required this.orderList,});// model转MapMapString, dynamic toJson() {type: type,orderList: orderList?.map((item) item.toJson()).toList(),};// Map转Modelfactory OrderDataEntity.fromJson(MapString, dynamic jsonRes) {return OrderDataEntity(type: asTString(jsonRes[type]) ?? ,orderList: asListTOrderDataOrderList(jsonRes[orderList],fromJson: (json) OrderDataOrderList.fromJson(json)),);} }class OrderDataOrderList {int? id;OrderDataOrderList({required this.id,});MapString, dynamic toJson() {id: id,};factory OrderDataOrderList.fromJson(MapString, dynamic jsonRes) {return OrderDataOrderList(id: asTint(jsonRes[id]),);} }五、工具类convert_util.dart import dart:convert;import package:flutter/foundation.dart;void tryCatch(Function? f) {try {f?.call();} catch (e, _) {debugPrint($e);} }class FFConvert {FFConvert._();static T? convertT extends Object?(dynamic value) {if (value null) {return null;}return json.decode(value.toString()) as T?;} }T? asTT extends Object?(dynamic value, [T? defaultValue]) {if (value is T) {return value;}try {if (value ! null) {final String valueS value.toString();if ( is T) {return valueS as T;} else if (0 is T) {return int.parse(valueS) as T;} else if (0.0 is T) {return double.parse(valueS) as T;} else if (false is T) {if (valueS 0 || valueS 1) {return (valueS 1) as T;}return (valueS true) as T;} else {return FFConvert.convertT(value);}}} catch (e, _) {debugPrint(asT$T,error: $e);return defaultValue;}return defaultValue; }ListT? asListTT extends Object?(dynamic value, {T Function(MapString, dynamic json)? fromJson,bool allowDirty false, }) {if (value is! List) return null;return value.foldListT([], (list, element) {try {if (element null) {return list;} else {final _parsedValue fromJson ! null ? fromJson(element) : asTT(element);if (_parsedValue null !allowDirty) {throw Exception(asListT Parse Error: data: ${jsonEncode(element)});}if (_parsedValue ! null) list.add(_parsedValue);}} catch (_) {debugPrint(dirty data found: ${jsonEncode(element)});if (!allowDirty) {rethrow;}}return list;}); }六、额外数据解析 1、ListMap - ListString 从ListMapString, dynamic中抽离ListString ListString orderIdList goodsList.map((e) e.orderId ?? ).toList();2、Map转json字符串 import dart:convert;MapString, dynamic myMap {key1: value1, key2: 2};String jsonString json.encode(myMap);print(jsonString); // {key1:value1,key2:2}3、json字符串转Map import dart:convert;String jsonString {key1:value1,key2:2};MapString, dynamic myMap json.decode(jsonString);print(myMap); // {key1: value1, key2: 2}4、Listdynamic转ListMapString,dynamic Listdynamic myList [{key1: value1, key2: 2}, {key1: value2, key2: 3}];ListMapString, dynamic myNewList myList.map((item) MapString, dynamic.from(item)).toList();print(myNewList); // [{key1: value1, key2: 2}, {key1: value2, key2: 3}]
http://www.dnsts.com.cn/news/261776.html

相关文章:

  • 郑州大型网站制作wordpress中文分类问题
  • 如何做好网站推广工作一键生成网站的软件
  • 多少钱用英语怎么说江苏网站关键词优化优化
  • 蜘蛛爬网站推广网站的方法有哪些
  • 建网站制作网站开发流程记住吧
  • 外贸建站效果做网站时的注册权起到什么作用
  • 深圳有哪些网站是做餐饮沙龙的网站建设多少钱裙
  • 电子政务门户网站建设代码cfensi.wordpress
  • 怎样更新网站文章上海网优化seo公司
  • 高新营销型网站建设公司怎么把网站源码上传到空间根目录视频
  • 福州网站建设策划网站首页建设图文教程
  • 好看的食品网站济宁创新网络运营有限公司
  • 利用小偷程序做网站大学 生免费商业网站设计
  • 福建福州罗源建设局网站网站空间租用和自己搭建服务器
  • 哪些网站做财金的好wordpress连续id
  • 用瀑布流做的美食网站wordpress主机cdn
  • 糟糕的网站设计wordpress windows
  • 做网站到底要不要营业执照长安英文网站建设
  • 免费网站模板建站公司网站备案选个人
  • 外贸网站建设报价差别那么大花钱多吃亏wordpress 平铺水印
  • wap网站的域名品牌运营管理有限公司
  • wordpress手机版弹出式导航seo公司网站建设
  • 贵州网站建设gzzctyi中网-西安网站建设公司
  • 网站做的支付宝接口网站建设 上海网站建
  • wordpress 单本seo关键词优化最多可以添加几个词
  • 凡科做数据查询网站网站建设 响应式 北京
  • 三台网站seophp网站免费模板
  • 佛山从事网站建设自己怎么开发棋牌软件
  • ip地址做网站网站重新备案
  • 网站设计建站网站建设捌金手指花总四