跨框架解决方案-Mitosis【Context】
2023-12-13 04:34:08
Context
Mitosis的context必须是:
- 在自己的文件中创建
- 文件名必须以context.lite.ts结尾
- 默认导出必须是一个返回context对象的函数
// simple.context.lite.ts
import { createContext } from '@builder.io/mitosis';
export default createContext({
foo: 'bar',
get fooUpperCase() {
return this.foo.toUpperCase();
},
someMethod() {
return this.fooUpperCase.toLowercase();
},
content: null,
context: {} as any,
state: {},
});
然后你可以在组件中使用它
import Context from './simple.context.lite';
import { useContext, setContext } from '@builder.io/mitosis';
export default function ComponentWithContext(props: { content: string }) {
// you can access the context using `useContext`
const foo = useContext(Context);
// you can use `setContext` to provide a new value for the context
setContext(Context, {
foo: 'baz',
content() {
return props.content;
},
});
return (
// you can also use `Context.provider` to provide a new value for the context
<Context.Provider value={{ bar: 'baz' }}>{foo.value}</Context.Provider>
);
}
文章来源:https://blog.csdn.net/qq_45643079/article/details/127518051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!