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

时间:2017-11-21 01:43:27

标签: javascript node.js vue.js vuejs2 pug

我正在尝试从渲染函数渲染单个文件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>

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

1 个答案:

答案 0 :(得分:1)

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

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

<强> Child.vue

<template>
  <h1>This is the Child component</h1>
</template>

我想从使用渲染功能的组件中渲染它。这是一个例子。

<强> Parent.js

import Child from "./Child.vue"

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

这是working example

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

所有这些都很好地涵盖了in the documentation