Skip to content

TIP

下方列举了一些 hooks 的使用示例

引入

ts
import {
	useLoading,
	useEleForm,
	useComputedNum,
	useResize,
	useNavigatorApp,
} from "remote-components-lib/hooks";

useLoading

常用于显示加载中状态或者页面加载状态

ts
import { useLoading } from "remote-components-lib/hooks";

const { loading, setLoading, toggleLoading, setLoadingText } = useLoading(
	// 初始化loading状态
	false,
	// loading文字
	""
);

useEleForm

表单的 hooks, 用于 element-plus 表单

ts
import { useEleForm } from "remote-components-lib/hooks";

const rules = {};
const {
	// form表单的ref
	formRef,
	// 表单的校验规则
	rules,
	// 校验表单
	validate,
	// 校验表单字段
	validateField,
	// 重置表单
	resetFields,
	// 滚动到指定字段
	scrollToField,
	// 清除校验
	clearValidate,
} = useEleForm(rules);

useComputedNum

用于数字之间的计算,金额的展示等等, 内置其他插件, 插件可查看文档

ts
import { useComputedNum } from "remote-components-lib/hooks";

type TType = "add" | "subtract" | "multiply" | "divide";

const {
	// 算法, + - * /, 返回值:{ number: ‘’, string: ‘’ }
	// 接受三个字段: (type: TType, a: string | number, b?: string | number): IResult
	//
	arithmetic,
	// 数字转为字符串
	toString,
	// 字符串转为数字
	toNumber,
	// 自定义参数配置
	custom,
} = useComputedNum();

useResize

适用于移动端。业务场景如:底部有按钮,当输入框聚焦的时候页面弹起不显示底部按钮

ts
import { useResize } from "remote-components-lib/hooks";

// initScrollHeight: 落差的高度, 屏幕高度落差xx不显示底部按钮
const { showBottom } = useResize({ initScrollHeight: 50 });

useNavigatorApp

该 hooks 用于公司内部的移动端混合页面的调用

ts
import { useNavigatorApp } from "remote-components-lib/hooks";

type IAppPageType =
	| "goOrderDetail"
	| "callPhone"
	| "goBail"
	| "updateOrderDetails"
	| "upLoadVideo"
	| "upLoadImg"
	| "downloadImg"
	| "navHead"
	| "goto"
	| "login"
	| "outLogin"
	| "customerService"
	| "gotoProduct"
	| "download"
	| "appVoice";

// goAppPage 接受的参数 (type: IAppPageType, options: Record<string, any> = {})
const { goAppPage } = useNavigatorApp();

// 例如点击按钮跳转app的订单详情
const clickBtn = () => {
	goAppPage("goOrderDetail", {
		orderDetailsId: "2024123sdf",
		title: "订单详情",
	});
};

Released under the MIT License.