Vue 2:如何从渲染函数渲染单个文件组件?

wri*_*mus 8 javascript node.js vue.js pug vuejs2

我正在尝试从渲染函数渲染单个文件 Vue 组件,但它没有被创建。我尝试了类似的变体:

// simple.vue
<template>
...
</template>
<script>
 ...
</script>

// parent.vue
<script>
import Simple from 
export default {
  name: "parentComponent",
  render: function (h) {
    return h(
      "div",
      null,
      Simple  // [Simple], Vue.component(Simple)
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

如何从渲染函数构建 Vue 组件?如果它有所作为,我也在使用哈巴狗。

Ber*_*ert 3

如果我理解正确的话,您只是想渲染可以从渲染函数编写为单个文件组件的组件。这很容易做到。

假设我有以下单个文件组件。

儿童.vue

<template>
  <h1>This is the Child component</h1>
</template>
Run Code Online (Sandbox Code Playgroud)

我想从使用渲染函数的组件中渲染它。这是一个执行此操作的示例。

父.js

import Child from "./Child.vue"

export default {
  render(h){
    return h("div", ["Text in Parent", h(Child)])
  },
  components: {Child}
}
Run Code Online (Sandbox Code Playgroud)

这是一个工作示例

需要注意的重要部分是,当您想要渲染组件时,只需将组件定义作为第一个参数传递给函数createElement(上面别名为h)。这就是@Phil 在评论中指出的。h(Child)创建一个子组件。从技术上讲,它创建一个虚拟节点,Vue 用它来渲染组件的实例。

文档中详细介绍了所有这些内容。