组合式 API
usePtahInstance()
usePtahInstance
用于访问当前的 ptah
实例。通过该 API,可以在组件内部访问和操作 ptah
实例,实现与平台的交互。
参数
- 无需传递参数。
使用示例
js
import { usePtahInstance } from '@ptahjs/creative-vue';
export default {
name: 'Header',
setup() {
// 获取 ptah 实例
const ptahInstance = usePtahInstance();
// 输出 ptah 实例,供调试使用
console.log(ptahInstance);
return {};
}
};
useUI()
useUI
用于在模块组件中初始化和使用 UI 组件。该 API 主要用于处理与 ptah
UI 组件的交互。你可以使用它来初始化 UI 模块、绑定事件等。
参数
- id: 组件的唯一标识符,用于关联和识别 UI 模块。
使用示例
vue
<template>
<div :ref="id" class="ui-button">
<button @click="onTestEventClick">按钮</button>
</div>
</template>
<script>
import { useUI } from '@ptahjs/creative-vue';
export default defineComponent({
name: 'UiButton1',
props: {
id: {
type: String,
default: ''
}
},
setup(props) {
// 初始化 UI 模块
const { module } = useUI(props.id);
// 测试点击事件
const onTestEventClick = (e) => {
// 执行点击事件的相关操作
};
return { onTestEventClick };
}
});
</script>
useExecuteEvent()
useExecuteEvent
用于执行事件流程。通过该 API,可以触发指定的事件,并提供一个回调函数来处理事件完成后的逻辑。它允许你按照指定的事件执行流程处理数据或交互逻辑。
参数
- 无需传递参数。
返回值
- run: 用于执行指定的事件流程。
使用示例
js
import { useExecuteEvent } from '@ptahjs/creative-vue';
// 获取 run 函数,用于执行事件
const { run } = useExecuteEvent();
// 测试点击事件
const onTestEventClick = (e) => {
// 执行点击事件的流程
run('click', props.item, () => {
console.log('执行完成');
});
};
usePropsFormModel()
usePropsFormModel
用于处理配置项组件中的扩展属性模型数据,允许你在组件中与表单数据进行双向绑定,并动态更新表单值。
参数
- props: 传入的组件属性,包括配置项、默认值等。
返回值
- 返回一个模型数组,其中包含当前表单的值。
使用示例
jsx
import { usePropsFormModel, configProps } from '@ptahjs/creative-vue';
export default {
name: 'PropNumber',
props: configProps, // 配置项属性
setup(props) {
// 获取表单模型
const [model] = usePropsFormModel(props);
// 渲染带有双向绑定的输入框
return () => (
<input type="number" vModel={model.value} placeholder={props.config.placeholder} />
);
}
};
useRenderListener()
useRenderListener
用于监听图层渲染的状态。在图层渲染过程中,可以通过该 API 获取加载中的状态、渲染完成的状态等,便于处理渲染流程中的各种操作。
参数
- items: 渲染的元素或对象集合。
- sceneId: 当前场景的唯一标识符。
- loading: 渲染过程中的加载状态回调函数。
- complete: 渲染完成后的回调函数。
使用示例
js
import { useRenderListener } from '@ptahjs/creative-vue';
useRenderListener({
items: items, // 渲染的对象集合
sceneId: id, // 当前场景 ID
loading: () => {
console.log('加载中...');
},
complete: () => {
console.log('加载完成!');
}
});
useSceneRendering()
useSceneRendering
用于监听场景渲染过程中的状态变化。你可以通过此 API 在渲染过程中获取每个 UI 模块的渲染状态,便于进行调试和优化。
参数
- callback: 一个回调函数,用于接收每次渲染的 UI 模块 ID。
使用示例
js
import { useSceneRendering } from '@ptahjs/creative-vue';
useSceneRendering((uiId) => {
console.log('渲染中', uiId); // 输出当前渲染的 UI 模块 ID
});
useSceneRendered()
useSceneRendered
用于监听当前场景渲染完成的事件。一旦场景渲染完成,你可以执行后续的操作,如更新 UI、触发交互等。
参数
- 无需传递参数。
使用示例
js
import { useSceneRendered } from '@ptahjs/creative-vue';
useSceneRendered(() => {
console.log('渲染完成 - 当前场景'); // 场景渲染完成后的回调
});