Vue 指令不适用于渲染

Posted

技术标签:

【中文标题】Vue 指令不适用于渲染【英文标题】:Vue directive doesn't work on render 【发布时间】:2018-11-20 12:25:15 【问题描述】:

我有如下渲染函数

function renderCheckbox(data, type, row, meta) 
  return `<input type='checkbox' value='test' v-model='somedata' />`


const test = new Vue(
        el: '#just-test',

        data: 
            somedata: []
        

在模板中我有 somedata 来测试它。

该指令似乎在那里不起作用。渲染时没有返回值。 v-model 似乎是一个属性,检查时的 html 看起来是:

<input type="checkbox" value="test" v-model="somedata">

但是,如果我将语句直接写入模板,则 v-model 可以工作。 因此,somedata 在渲染时显示为 [ "test" ]。 对此有何解释和解决方案?

【问题讨论】:

你如何使用你的 renderCheckbox 函数? 该函数作为另一个组件 A 的值传入。组件 A 具有渲染函数,该函数接受 HTML 并呈现它 【参考方案1】:

您的渲染函数应该创建 javascript。例如:

Vue.component('anchored-heading', 
  render: function (createElement) 
    return createElement(
      'h' + this.level,   // tag name
      this.$slots.default // array of children
    )
  
)

请使用类似 html 的语法模板。

【讨论】:

以上是关于Vue 指令不适用于渲染的主要内容,如果未能解决你的问题,请参考以下文章

vue基础用法-内容渲染指令

Vue 指令数据及事件绑定条件和列表渲染

Tailwind 的 @apply 指令适用于前端,但不适用于 Angular Universal 的后端

v-bind:style 指令不适用于条件比较

Vue指令之条件渲染

vue基础简单介绍