<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[非動ご博客]]></title><description><![CDATA[非 0 则 1]]></description><link>https://blog.youkuaiyun.com/r122555</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; r122555]]></copyright><item><title><![CDATA[XAF 通知模块的功能实现]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/115308015</link><guid>https://blog.youkuaiyun.com/r122555/article/details/115308015</guid><author>r122555</author><pubDate>Mon, 29 Mar 2021 18:31:58 +0800</pubDate><description><![CDATA[前言
业务简介： 通过现有的A类进行一系列数据处理生成包含通知功能的B类。B类实例的通知时间根据A类实例的某属性自动生成，不允许手动编辑。任一通知实例只针对特定用户，而不是对全体用户推送。
很意外的是，关于这部分的功能，官方示例全都使用 Entity Framework 数据模型实现。给习惯了使用XPO的我们造成了一点麻烦。实际上，使用XPO实现这部分的功能要更为简单。
实现 ISupportNotifications 接口
ISupportNotifications 接口需要实现4个字段：AlarmTim]]></description><category></category></item><item><title><![CDATA[XAF的ListView中控制部分行的可编辑性的方法]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/112908256</link><guid>https://blog.youkuaiyun.com/r122555/article/details/112908256</guid><author>r122555</author><pubDate>Wed, 20 Jan 2021 20:15:43 +0800</pubDate><description><![CDATA[场景
在自定义的 PopupWindow 中包含了一个允许编辑的 ListView ，但是对于特定的某些数据（在界面呈现为某些行）不允许进行编辑。例如： ListView 呈现了某个业务类( BusinessObjects ) 的所有成员——使用其 Caption 表示。并且使用勾选框来决定某个成员在其业务类所对应的 ListView 中显示与否。其中必填字段是必须显示的，因此不能够对其进行编辑。

如图所示，客户编号和客户名称是必填字段，因此不能编辑。等级和描述是选填的，因此可以编辑。
实现思路
使用条件]]></description><category></category></item><item><title><![CDATA[XAF 整数类型自增的实现]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/111644427</link><guid>https://blog.youkuaiyun.com/r122555/article/details/111644427</guid><author>r122555</author><pubDate>Thu, 24 Dec 2020 19:18:22 +0800</pubDate><description><![CDATA[XAF本身并未提供整型数据自增的装饰器，在社区搜索后，找到了一个较为简便思路（见下文），实践后发现确实可行。
在数据库中创建自动增量的列
在 Visual Studio 中点开 “SQL Server 对象资源管理器”，选中需要操作的表，右键进入视图设计器，在T-SQL面板中添加自增的字段，并执行更新。

插入的代码为：
[Total] INT IDENTITY (11, 1) NOT NULL,

说明 ，方括号中的是字段名， IDENTITY 代表将字段设置成自增， 第一个参数表示初始值， 第二个参数表]]></description><category></category></item><item><title><![CDATA[XAF自定义登录页]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/111467882</link><guid>https://blog.youkuaiyun.com/r122555/article/details/111467882</guid><author>r122555</author><pubDate>Mon, 21 Dec 2020 17:32:01 +0800</pubDate><description><![CDATA[本文参阅官网文档 How to: Use Custom Logon Parameters and Authentication 加以实践并做简单的总结归纳。
修改登录页面文本信息
如果需要修改登录页面文本信息或实现本地化，可以双击解决方案中module工程下的 .xafml 文件，进入模型编辑器，在项目树结构中展开 Views 节点  → 展开 DevExpress.ExpressApp.Security → 展开AuthenticationStandardLogonParameters_DetailVie]]></description><category></category></item><item><title><![CDATA[XAF自定义启动页]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/111405997</link><guid>https://blog.youkuaiyun.com/r122555/article/details/111405997</guid><author>r122555</author><pubDate>Sat, 19 Dec 2020 16:44:20 +0800</pubDate><description><![CDATA[本主题是官网指导教程 Use a Custom Class to Show a Splash Form 的补充。演示了如何创建自定义启动页（splash form）并使用。
具体步骤
1. 创建一个Splash Form窗体
右键解决方案中的WinForms应用工程（xxx.win）,在弹出菜单中选择"添加"-&gt;“新建项”。

在弹出的窗体中点击 “Windows Form” -&gt; “窗体（Windows 窗体）”，在窗体的最下方的名称中输入文件名"SplashScreenForm.cs"，随后]]></description><category></category></item><item><title><![CDATA[React实现footer在页面没有充满屏幕情况下的适配]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/106468409</link><guid>https://blog.youkuaiyun.com/r122555/article/details/106468409</guid><author>r122555</author><pubDate>Mon, 01 Jun 2020 11:57:27 +0800</pubDate><description><![CDATA[背景
需求是当页面内容超出一屏的是否，footer跟随内容显示在其下方；当页面内容不满一屏时固定在屏幕的下方。
图形示意
正常情况下，当页面内容过少，footer会跟随内容显示，导致footer下方还会有一些空白，如下图：

而我们想要实现的效果是将footer置于页面的最下方，内容和footer之间留白，如下图所示：

思路
一开始我企图使用css技巧实现上述效果，查找了一些文档(见于博客最下方)，甚至引用了一些第三方插件……
最终还是失败了，可能跟使用的框架有关系吧（我使用的是GATSBY）。
重点来了]]></description><category></category></item><item><title><![CDATA[react native关于style类型的属性(PropTypes)确认]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/102720109</link><guid>https://blog.youkuaiyun.com/r122555/article/details/102720109</guid><author>r122555</author><pubDate>Thu, 24 Oct 2019 11:58:15 +0800</pubDate><description><![CDATA[先做一下错误(❎)示范：
import PropTypes from 'prop-types';

static propTypes = {
    containerStyle: PropTypes.style,
}

结果：
Warning: Failed prop type: LocationIndex: prop type containerStyle is invalid; it mus...]]></description><category></category></item><item><title><![CDATA[关于react-native-updater-client]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/102563949</link><guid>https://blog.youkuaiyun.com/r122555/article/details/102563949</guid><author>r122555</author><pubDate>Tue, 15 Oct 2019 11:42:58 +0800</pubDate><description><![CDATA[关于react-native-updater-client
package.json中引用：
react-native-updater-client:
"react-native-updater-client": "git+http://172.15.16.186/ReactNative/RNUpdaterClient.git#RN0.33"

手动配置步骤：
1）APP文件夹build.grad...]]></description><category></category></item><item><title><![CDATA[react native Text组件首行缩进]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/96335357</link><guid>https://blog.youkuaiyun.com/r122555/article/details/96335357</guid><author>r122555</author><pubDate>Thu, 18 Jul 2019 09:47:25 +0800</pubDate><description><![CDATA[中文段落一般都会有首行缩进。然而react native的Text组件并没有直接提供相关的配置属性。
在最近的开发中遇到了一个看似简单的需求，要实现如下图的效果

重点是需要在标题的左边添加一个分类的标识，而这个标识不能直接使用Text嵌套实现。因为这个标识区域是有边框的。
有人可能会问为什么不直接使用marginLeft呢？那将回事另一种效果，如下图所示

我的思路是对标题进行首行缩进，空出相应...]]></description><category></category></item><item><title><![CDATA[react native 自适应位置的下拉选择框（react-native-selfadapt-modal）]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/90511847</link><guid>https://blog.youkuaiyun.com/r122555/article/details/90511847</guid><author>r122555</author><pubDate>Thu, 20 Jun 2019 16:00:40 +0800</pubDate><description><![CDATA[react native 可定位的下拉选择框
在实际开发过程中，下拉选择应该是比较常用的功能。我在项目开发中先后使用了以下两种第三方插件：
react-native-popup-menu

...]]></description><category></category></item><item><title><![CDATA[react 无状态组件与纯组件（pureComponent）]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/82783944</link><guid>https://blog.youkuaiyun.com/r122555/article/details/82783944</guid><author>r122555</author><pubDate>Thu, 20 Sep 2018 14:18:44 +0800</pubDate><description><![CDATA[无状态组件与纯组件（pureComponent）
1.1 无状态组件
无状态组件可以通过减少继承Component而来的生命周期函数而达到性能优化的效果。从本质上来说，无状态组件就是一个单纯的render函数，所以无状态组件的缺点也是显而易见的。因为它没有shouldComponentUpdate生命周期函数，所以每次state更新，它都会重新绘制render函数。
原则上，只要一个组件只具有re...]]></description><category></category></item><item><title><![CDATA[react native 绑定this的几种方式]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/82655986</link><guid>https://blog.youkuaiyun.com/r122555/article/details/82655986</guid><author>r122555</author><pubDate>Wed, 12 Sep 2018 10:18:09 +0800</pubDate><description><![CDATA[对于react native 绑定this，我将其归类为以下四种方式：


bind 
箭头函数 
::运算符
使用箭头函数定义函数


首先明确观点，我向大家推荐第四种方式：

1.bind

class TestBind extends React.Component {
    constructor(props) {
        super(props);
        this.s...]]></description><category></category></item><item><title><![CDATA[react native 代码执行（一）]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/81056653</link><guid>https://blog.youkuaiyun.com/r122555/article/details/81056653</guid><author>r122555</author><pubDate>Sun, 15 Jul 2018 20:42:39 +0800</pubDate><description><![CDATA[今天继续学习react native 源码

react native Android端代码执行的大体流程:

第一步：在应用的Application里做RN的初始化操作。

有两个需要注意的对象：


ReactNativeHost：持有ReactInstanceManager实例，做一些初始化操作。
重载方法onCreate里面的SoLoader：加载C++底层库，准备解析JS。


第二步：...]]></description><category></category></item><item><title><![CDATA[React Native与原生模块、组件之间的关系浅析（二）]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80972607</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80972607</guid><author>r122555</author><pubDate>Mon, 09 Jul 2018 15:57:02 +0800</pubDate><description><![CDATA[那么书接上回，今天主要是继续探究React Native与原生模块的架构方式。

原生模块

原生模块可以访问activity、运行环境、GPS、存储空间等。原生模块就是能够在JavaScript层调用的API。

因为对原生模块的全部请求都要异步执行。如果原生方法需要为JavaScript层的调用返回数据，该操作将通过promise或者回调函数来完成。React Native为这两种方式都提供了...]]></description><category></category></item><item><title><![CDATA[React Native与原生模块、组件之间的关系浅析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80959361</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80959361</guid><author>r122555</author><pubDate>Sun, 08 Jul 2018 14:57:57 +0800</pubDate><description><![CDATA[原生组件

当React Native开始渲染一个界面时，原生层会建立与该界面结构一样的镜像。桥接层把规则（组件属性）从React Native所描绘的UI层传递给原生层。最终在屏幕上看到的，就是React组件转译成相应原生组件的结果。以下我们将探究： 
- ViewManager(“视图管理器”)如何管理原生UI组件; 
- React组件属性如何传递给在原生层定义的函数并选择处理方式。

Re...]]></description><category></category></item><item><title><![CDATA[react native 动画组件（Animated）浅析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80840808</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80840808</guid><author>r122555</author><pubDate>Thu, 28 Jun 2018 16:40:07 +0800</pubDate><description><![CDATA[简述

react native封装了两个易于使用的动画组件。用于全局的布局动画LayoutAnimation，和用于创建更精细的交互控制的动画Animated。本章主要对Animated组件进行简单的学习。



动画类型

Animated提供了三种动画类型。每种动画类型都提供了特定的函数曲线，用于控制动画值从初始值变化到最终值的变化过程：


Animated.decay()以指定的初始速度...]]></description><category></category></item><item><title><![CDATA[对于JavaScript中对象参数的传递方式的浅析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80827072</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80827072</guid><author>r122555</author><pubDate>Wed, 27 Jun 2018 11:53:57 +0800</pubDate><description><![CDATA[
  本文章主要是想探索一下JavaScript中，对象类型的参数的传递方式


背景:

按值传递(call by value)是最常用的求值策略：函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。

按引用传递(call by reference)时，函数的形参接收实参的隐式引用，而不再是副本。这意味着函数形参的值如果被修改，实参也会被修改。同时两者指向相同的值。



let ...]]></description><category></category></item><item><title><![CDATA[JavaScript instanceof运算符浅析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80693623</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80693623</guid><author>r122555</author><pubDate>Thu, 14 Jun 2018 17:35:32 +0800</pubDate><description><![CDATA[描述

instanceof 运算符用来检测构造函数的 prototype 属性是否存在于参数 object 的原型链上。



语法



object instanceof constructor



参数

object 要检测的对象. 
constructor 某个构造函数...]]></description><category></category></item><item><title><![CDATA[原型链浅析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80684537</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80684537</guid><author>r122555</author><pubDate>Wed, 13 Jun 2018 20:28:31 +0800</pubDate><description><![CDATA[原型链



prototype属性和__proto__属性

普通对象是没有prototype属性的,只有隐藏属性__proto__（但是建议不要使用__proto__属性）。而函数对象则两者兼有。prototype属性指向的是函数对象的原型对象，而__proto__属性可称为隐式原型，一个对象的隐式原型指向构造该对象的构造函数的原型，这也保证了实例能够访问在构造函数原型中定义的属性和方法。

...]]></description><category></category></item><item><title><![CDATA[基于Object.assign源码的分析]]></title><link>https://blog.youkuaiyun.com/r122555/article/details/80666108</link><guid>https://blog.youkuaiyun.com/r122555/article/details/80666108</guid><author>r122555</author><pubDate>Tue, 12 Jun 2018 15:42:41 +0800</pubDate><description><![CDATA[前言： 在使用babel将ES6转换为ES5后，获取了Object.assign方法的ES5版本。基于此版本的代码进行如下的扩展学习。

rowData=Object.assign(rowData,obj);

//ES5版本代码如下:

var _extends = Object.assign || function (target) {
    for (var i = 1; i &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; a...]]></description><category></category></item></channel></rss>