阅读 133

Electron+React+七牛云 实战跨平台桌面应用

Electron+React+七牛云 实战跨平台桌面应用

download:Electron+React+七牛云 实战跨平台桌面应用

目前市场上对 Electron 的呼声很高,它几乎是 Web 开发人员开发桌面客户端的唯一途径,很多大厂都使用 Electron 开发自己的原生应用。Electron 天生适配任何前端开发框架,我们结合 React Hooks 这个炙手可热的新特性进行教学,同时因为 Electron 也可以使用 Node.js 的开发环境,所以我们同时使用七牛云和很多 Node 原生模块进行开发,来完成一个非常有吸引力的云同步 Markdown 文档管理应用。
适合人群
想要以前端技术开发桌面客户端的Web 开发人员

技术储备要求

  1. 掌握前端基本知识 (ES6,CSS,HTML)

  2. 掌握 React 基础知识,如不具备可学习此课程

public class ObjectIdConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(ObjectId);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType != JsonToken.String)
{
throw new Exception(
String.Format("Unexpected token parsing ObjectId. Expected String, got {0}.",
reader.TokenType));
}
var value = (string)reader.Value;
return String.IsNullOrEmpty(value) ? ObjectId.Empty : new ObjectId(value);
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is ObjectId)
{
var objectId = (ObjectId)value;
writer.WriteValue(objectId != ObjectId.Empty ? objectId.ToString() : String.Empty);
}
else
{
throw new Exception("Expected ObjectId value.");
}
}
}
在ObjectId字段上加一行代码即可

[JsonConverter(typeof(ObjectIdConverter))]
public string _id { get; set; }
假如运用Newtonsoft的JsonConvert的话,还需求额外加上参数

JsonConvert.DeserializeObject<xxxx>(json,new ObjectIdConverter());

3、经过Ignore,一种很有技巧性的写法

[JsonIgnore]
public override ObjectId _Id { get; set; }
[BsonIgnore]
public string _IdStr
{
get
{
return Id.ToString();
}
set
{
ObjectId id;
ObjectId.TryParse(value, out id);
Id = id;
}
}

©著作权归作者所有:来自51CTO博客作者mb60502f0b86aee的原创作品,如需转载,请注明出处,否则将追究法律责任


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐