跨框架解决方案-Mitosis【Context】

Context

Mitosis的context必须是:

  • 在自己的文件中创建
  • 文件名必须以context.lite.ts结尾
  • 默认导出必须是一个返回context对象的函数
js 复制代码
// 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: {},
});

然后你可以在组件中使用它

js 复制代码
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>
  );
}
相关推荐
beckyyy7 分钟前
ant design vue Table根据数据合并单元格
前端·ant design
小脑虎7 分钟前
JavaScript 进阶核心文档(零基础衔接版,通俗易懂 2025最新)
javascript
用户8168694747258 分钟前
Commit 阶段的 3 个子阶段与副作用执行全解析
前端·react.js
岭子笑笑9 分钟前
Vant4图片懒加载源码解析(一)
前端
老华带你飞12 分钟前
婚纱摄影网站|基于java + vue婚纱摄影网站系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
旅行的狮子13 分钟前
5分钟快速体验Midscene.js(Node环境、Playwright)
开发语言·javascript·midscenejs
Rysxt_15 分钟前
UniApp App.vue 文件完整教程
开发语言·前端·javascript
qiyue7719 分钟前
AI浪潮下,前端的路在何方,附前端转KMP实践
前端·ai编程
Moment20 分钟前
历史性突破!LCP 和 INP 终于覆盖所有主流浏览器,iOS 性能盲点彻底消失
前端·javascript·面试
小小荧21 分钟前
Hono与Honox一次尝试
前端·后端