vue 如何实现高阶组件

来源:7-26 什么是React高阶组件

斜杠男人

2021-02-01

vue 如何实现高阶组件,请老师明说吧?

写回答

1回答

双越

2021-02-01

vue 可以使用 render 函数来代替 template,这样就和 React 差不多了,例如:

const withPromise = (wrapped) => {
  return {
    data() { ... },
    mounted() { ... },
    render(h) {
      return h(wrapped, {
        props: {
          result: this.result,
          loading: this.loading,
        },
      });
    },
  };
};

以上 withPromise 就是一个高阶组件,接受一个组件 warapped ,返回一个新的组件。

1
2
双越
回复
斜杠男人
第一,vue 既然支持 render 函数,render props 也是可以实现的,但不建议这样用,毕竟 vue 和 React 都有各自不同的使用习惯,不要太“个性”,否则你写的代码别人不易看懂。 第二,插槽是 vue 给定义好的,开发者按照 vue 文档来即可,而 HOC 和 render props 需要开发者自己实现。
2021-02-08
共2条回复

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4592 学习 · 1628 问题

查看课程