createContext.js 850 B

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  8. var _vue = require("vue");
  9. function createContext(defaultValue) {
  10. const contextKey = Symbol('contextKey');
  11. const useProvide = (props, newProps) => {
  12. const mergedProps = (0, _vue.reactive)({});
  13. (0, _vue.provide)(contextKey, mergedProps);
  14. (0, _vue.watchEffect)(() => {
  15. (0, _extends2.default)(mergedProps, props, newProps || {});
  16. });
  17. return mergedProps;
  18. };
  19. const useInject = () => {
  20. return (0, _vue.inject)(contextKey, defaultValue) || {};
  21. };
  22. return {
  23. useProvide,
  24. useInject
  25. };
  26. }
  27. var _default = exports.default = createContext;