VUE.JS渲染功能

时间:2018-08-09 10:45:37

标签: javascript html vue.js components

我正在研究Vue.js并在使用波纹管渲染功能时陷入困境:

这是我从组件中调用的javascript文件。

import Button from './Button'

export default {
  functional: true,
    render(h) {
    return(
        <div id='toolbar'>
        <Button type='markup' tag='strong'> B </Button>
        <Button type='markup' tag='em'> I </Button>
        <Button type='section' tag='h1'> H1 </Button>
        <Button type='section' tag='h2'> H2 </Button>
        <Button type='section' tag='ul'> UL </Button>
        <Button type='section' tag='ol'> OL </Button>
        <slot />
      </div>
    )
  }
}

我需要导出上述函数,但出现错误。

      5 |     render(h) {
      6 |     return(
   >  7 |         <div id='mobiledoc-toolbar'>
        |         ^
      8 |         <Button type='markup' tag='strong'> B </Button>

调用此函数时出现错误,不确定是否只能使用backqouts / backticks

1 个答案:

答案 0 :(得分:0)

在redux中,您确实可以将HTML标记与JavaScript混合使用。但是Vue.js中没有这样的东西。唯一的方法是将HTML包装在模板字符串中:

return(`
    <div id='mobiledoc-toolbar'>
    ...
    </div>
`

或将<template>模板格式用于vue(如果您使用的是webpack)。这样的组件看起来像这样:

<template>
  <div id="toolbar">
  </div>
</template>

<script>
    export default new Vue(

    );
</script>

<style lang="scss">
  // Your styles here
</style>

,那么就不需要任何render()方法。

PS:是的,按照@Bert的建议,您还可以使用Babel JSX Transform plugin并使用JSX语法。