跨框架解决方案-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>
  );
}
相关推荐
C_心欲无痕2 分钟前
网络相关 - 跨域解决方式
前端·网络
天蓝色的鱼鱼3 分钟前
Vue开发必考:defineComponent与defineAsyncComponent,你真的掌握吗?
前端·vue.js
用户81274828151204 分钟前
aosp14分屏分割线区域部分深入剖析-framework实战干货
前端
三小河4 分钟前
内网环境下 Web 离线地图的实现方案与合规性探讨
前端
2501_941807264 分钟前
在迪拜智能机场场景中构建行李实时调度与高并发航班数据分析平台的工程设计实践经验分享
java·前端·数据库
崇山峻岭之间8 分钟前
Matlab学习记录24
javascript·学习·matlab
一 乐8 分钟前
餐厅点餐|基于springboot + vue餐厅点餐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
踢球的打工仔11 分钟前
typescript-var和let作用域
前端·javascript·typescript
daols8813 分钟前
vue 表格 vxe-table 如何实现透视表拖拽对数据进行分组汇总,金额合计、平均值等
vue.js·vxe-table
手握风云-13 分钟前
JavaEE 进阶第八期:Spring MVC - Web开发的“交通枢纽”(二)
前端·spring·java-ee