问题标签 [vue-render-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
186 浏览

javascript - `h` 和 `createVNode` 是一样的吗?

两者hcreateVNode暴露于vue.

文档似乎暗示它们是相同的:

h() 函数是创建 VNode 的实用程序。它可能更准确地命名为createVNode()

但是切换hcreateVNode会抛出:

0 投票
1 回答
274 浏览

javascript - 在我的插槽中包装动态添加的子元素

如果我有一个带有单个插槽的组件,而不是仅仅渲染它的所有子元素,我想包装每个元素,我会做这样的事情:

像这样使用:

最终看起来像这样

到目前为止,一切都很好。

现在,当我想插入另一个<p>元素 <MyElement>

新元素不会被包装,因为不会再次调用渲染,我如何才能完全控制插槽中每个子元素的渲染?还是有更好的时间以编程方式将子项附加到组件中?

谢谢

0 投票
3 回答
2314 浏览

vue.js - 带有更新输入值的 vue 提交表单

我有一个简单的隐藏表格

我希望我的方法附加到不同的按钮(v-on:click="submitForm")来提交这个表单来设置数据。

但似乎我误解了反应性/绑定/参考?在Vue中,所以我尝试过

  • this.$refs.submit.click();
  • this.$forceUpdate();
  • 设置:value="myData"/v-model="myData"打开输入

并且这些方法都不起作用。发送的表单带有data/的空字段signature,因此似乎变量未更新或表单无法在一个函数调用中重新呈现。进行此类更新的正确方法是什么?

0 投票
2 回答
402 浏览

vue.js - vue 在点击时渲染组件

我有一个名为customer-type.

我确实有全年,我也有很多组件。所以我想减少渲染。

单击后如何加载组件renderComponent

我不想在明确单击它之前渲染组件。

0 投票
0 回答
319 浏览

vue.js - 如何将动态道具传递给 vue 的渲染函数?

我尝试根据描述动态渲染组件。

我会渲染

我的目标是为任意事件和动态道具做到这一点。
我不知道如何传递动态道具来渲染。

部分解决方案:

val1基于(https://symfonycasts.com/screencast/vue/vue-instance)的有效但每次更改都会重新渲染的解决方案是

我尝试使用 VueJS 文档

我在有关渲染的文档中找不到如何传递动态变量。

在最小的实现中你可以看到我已经走了多远,如果你能帮我完成它,那就太棒了!

到目前为止的最小实施

我希望看到 'hello' 而不是 'values.value1' 并且 values.value1 应该在我更改文本框中的文本后更新。

演示.html:

0 投票
2 回答
1711 浏览

typescript - 如何使用 ts 在 vue3 的渲染函数中公开组件方法

我想在父文件中调用子组件方法,子组件由渲染函数创建。下面是我的代码

child.ts

父.ts

0 投票
2 回答
535 浏览

vue.js - Vue.js 渲染函数是否允许返回 VNode 数组?

我正在扩展 Vue.js 前端应用程序。我目前正在检查功能组件中的渲染功能。查看文档后,我了解到功能组件中的渲染函数将返回使用 CreateElement aka h 创建的单个 VNode。当我看到一个 VNode 作为数组中的一个元素返回时,我感到困惑。我在文档中找不到对此语法的任何引用。有没有人有任何见解?

0 投票
1 回答
166 浏览

vue.js - Vue渲染功能:在没有包装器的情况下将插槽包含到子组件中

我正在尝试制作一个功能组件,该组件根据道具呈现一个组件或另一个组件。其中一个输出必须是一个<v-select>组件,我想将它传递给它的所有槽/道具,就像我们直接调用它一样。

但是我找不到一种方法来将给我的功能组件的插槽包含在我正在渲染的内容中,而无需在它们周围添加包装器:

我不能使用scopedSlots选项,因为这个插槽(例如)没有插槽道具,所以这个函数永远不会被调用。

有没有办法将插槽传递给我正在渲染的组件而不添加包装元素?

0 投票
2 回答
110 浏览

vue.js - Vue.js 删除渲染函数中的 contenteditable 属性

这似乎应该是一个简单的解决方案,但出了点问题......

我需要有条件地从元素中删除 contenteditable属性:

我试过了:

沙盒

结果是:<div contenteditable="false"></div>,但我需要完全删除属性。例如title,属性按预期工作,如果它的值设置为 null,它不会呈现。我还尝试使attrs对象完全反应,例如:

沙盒

...但没有运气。任何想法如何解决这个问题?

谢谢!

0 投票
1 回答
22 浏览

vue.js - VueJS 3 在运行时创建/传递超脚本到模板?

我想出于性能/方便的目的尝试一些东西,我知道收益将是微乎其微的,但了解它是如何/如果/为什么起作用的也将有助于学习。

我有一些自定义数据类型(定义为类),用于识别整个应用程序中的某些属性。我想在类型上使用静态函数来定义显示函数。(精简)示例:

像你一样调用它:

只要它在v-html属性中,它就可以在模板中使用。这是完全可以接受的。

指定我正在使用 Vue-CLI 和单文件组件可能很重要,因此所有这些甜蜜的超脚本都是在编译时创建的。

但这让我想到,有没有办法可以在渲染时将新创建的超脚本传递给模板?如果可能的话,最好以一种{{mustache}}可行的方式。

我试过这样做,h但只显示 ol' [object Object]


更新:也试过

我想也许绕过 Vue 渲染函数可以完成工作,但它们似乎也不喜欢文档片段。


问题 有没有办法在运行时创建超脚本并在 vue 模板中使用它?如果它在{{mustache}}和中工作,则加分v-html