跨框架解决方案-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>
  );
}
相关推荐
竹林8182 分钟前
Web3前端开发:使用ethers.js监听智能合约事件
javascript·智能合约
张元清4 分钟前
不用 WebSocket 库,在 React 中构建实时功能
前端·javascript·面试
李白你好4 分钟前
浏览器插件 | 信息收集、统一指纹识别 、DOM XSS 检测 、漏洞报告生成与管理
前端·xss
渔民小镇16 分钟前
不用前端也能测试 —— 模拟客户端请求模块详解
java·服务器·前端·分布式·游戏
SuperEugene21 分钟前
Python + venv + VSCode:前端工程师 AI 转型入门 | 基础篇
前端·人工智能·vscode·python
xuboyok236 分钟前
PHP vs Java:核心差异与选型指南
开发语言·前端·php
D_C_tyu37 分钟前
Vue3 + Vite 项目实现页面离开时取消所有未完成请求
前端·vue.js
榴莲omega43 分钟前
第10天:手写 bind 与 柯里化 | 从疑惑到通透
开发语言·javascript·ecmascript·bind·柯里化
leafyyuki44 分钟前
Pyenv Rehash 失败:锁文件与‘无法覆盖已有文件’问题
前端
Binarydog_Lee1 小时前
Tauri2 开发入门:应用是如何启动的
前端·rust·tauri