与优化

云眼About 4 min

与优化

本主题介绍高阶组件与优化 .

通过使用高阶组件(HoC),EyeofcloudProvider下的任何组件都可以访问Eyeofcloud ReactSDKClient,它公开了Eyeofcloud灰度发布信息和API。 withEyeofcloud

版本

SDK v1.0.0

描述

如果不想使用 React 组件或钩子(例如 useDecision)与 Eyeofcloud灰度发布 进行交互,则该组件提供对所有标准 SDK 方法(例如 Decide 方法)的访问。通过为包装的组件提供 prop,高阶组件也使这些标准 SDK 方法的使用更加方便。withEyeofcloud``eyeofcloud``withEyeofcloud

该对象会自动与传递给祖先 EyeofcloudProvider 的用户属性相关联。结果是,该用户对象的 id 和属性将自动转发到所有相应的 SDK 方法调用。因此,在使用后调用客户端对象的方法时,无需传递 userId 或属性参数,除非希望使用与提供给 EyeofcloudProvider 的 userId 或属性不同的属性。eyeofcloud``eyeofcloud``withEyeofcloud

参数

下表列出了 React SDK 的必需参数和可选参数。

参数

类型

描述

元件

React组件

将使用以下道具增强的组件

提供的道具

支柱

类型

描述

云眼

ReactSDKClient

传递给云眼提供程序的客户端对象

优化就绪超时

号码 |定义

传递给云眼提供程序的超时

is服务器端

布尔

传递给云眼提供程序的值

返回

带有附加道具的包装组件,如上所述

React

import { withEyeofcloud } from '@eyeofcloud/react-sdk' class MyComp extends React.Component { constructor(props) { super(props) const { eyeofcloud } = this.props const decision = eyeofcloud.decide('feat1') this.state = { decision.enabled, decision.variables, } } render() { } } const WrappedMyComponent = withEyeofcloud(MyComp)

跟踪(与优化一起使用)

其他云眼灰度实验功能,可能由此方法触发。

React

import { withEyeofcloud } from '@eyeofcloud/react-sdk' class SignupButton extends React.Component { onClick = () => { const { eyeofcloud } = this.props eyeofcloud.onReady().then(() => { eyeofcloud.track('signup-clicked') }) // rest of click handler } render() { <button onClick={this.onClick}> Signup </button> } } const WrappedSignupButton = withEyeofcloud(SignupButton)

🚧

Important

As mentioned above, the client object provided via is automatically associated with the user prop passed to the ancestor EyeofcloudProvider. There is no need to pass userId or attributes arguments when calling track, unless you wish to use different userId or attributes than those given to EyeofcloudProvider.eyeofcloud``withEyeofcloud

Source

The language/platform source files containing the implementation for React is index.tsopen in new window.

Updated about 2 months ago


[

Example usage

](/experimentation/v4.0.0-full-stack/docs/example-usage-react)[

EyeofcloudProvider

](/experimentation/v4.0.0-full-stack/docs/eyeofcloudprovider)

Did this page help you?

Yes

No

创建用户上下文

介绍创建用户上下文方法,该方法为云眼灰度实验中的标帜决策和事件创建用户上下文。

此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。

版本

1.0.0-beta 或更高版本

描述

此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。

参数

下表列出了必需参数和可选参数:

参数

类型

描述

(必选)用户 ID

字符串

用户的 ID。

属性
可选

Map

自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。

受众群体属性

为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的open in new window字符串,然后在 Eyeofcloud 应用中定义受众条件。version

🚧 重要

在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。

返回

返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文

Dart

// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);

参见

云眼用户上下文

源文件

包含 Flutter SDK for Android Eyeofcloudopen in new window 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swiftopen in new window

Last update:
Contributors: “zhangweixue”