问题标签 [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.
vue.js - 如何在运行时将插槽包装在作用域插槽中
我有一个非常不寻常的场景。
WrapperComponent 应该管理 InnerComponent 的所有实例。但是我不知道什么会被编译到包装器组件中。
通常我会做这样的事情:
但我不能这样做是有原因的!
我需要能够在运行时创建插槽内容的多个实例。我已经用我目前得到的东西创建了一个代码沙箱。
https://codesandbox.io/s/stupefied-framework-f3z5g?file=/src/App.vue:697-774
这仅适用于静态信息,但我也有一些每个插槽实例不同的数据。
因为 VNode 是只读的,所以我无法修改 this.$slot.default.componentOptions.propsData。如果我忽略警告,结果将只是传递给插槽最后一个实例的内容。
vuejs3 - Vue 3:resolveComponent 只能在 render() 或 setup() 中使用
我正在尝试在 Vue 3 中呈现模板。模板包含一个组件,该组件在实例上本地注册。
这会导致以下运行时警告:
此外,该renderless-pagination
组件没有被编译,而是按原样添加到 HTML 中:
正如你所看到的,我resolveComponent
在函数中使用render
,这让我想知道它为什么会抱怨,以及为什么renderless-pagination
组件没有被编译。
我检查了resolveComponent
调用返回的值,它只返回组件的名称,即renderless-pagination
.
我在这里想念什么?
编辑:
在@skirtle 的评论之后,我externals
使用webpack
. 但是,我仍然收到相同的错误:
相关webpack
配置:
javascript - Vue Composition Api 渲染功能同步发射不起作用
我想重构本教程中关于渲染函数的代码以使用合成 API。一切正常,除了context.emit("update:activeTabId", tab.props.tabId);
onClick 函数中的行。控制台记录tab.props.tabId
显示 onClick 函数可以正常工作并正确读取 tabId,但update:activeTabId
不会更新activeTabId
值。是否有另一种方法可以在 Composition API 中使用同步修饰符发出事件,或者我做错了什么?
这是我的代码:
---- 应用程序.vue ----
--- tabs.js ---
javascript - 如何在 Vue 2 渲染功能中使用插槽?
我想做以下事情,但使用 Vue 2 的渲染功能
vuejs2 - 如何从 Nuxt 中的 Vuex 中删除 window.__NUXT__ 而不会出现任何问题
我在 Nuxt 2.13 上,我遇到了window.__Nuxt__(function(a,b,c,d,.....))
. 我不知道它是否会影响我的 SEO,但它让我很紧张,并显示了我所有的语言文件。
这是情况:lang.json
我的应用程序中有一个文件。我阅读它并将其存储lang
在Vuex
. 但window.__Nuxt__
显示我不想的语言!
到目前为止,我已经找到了三种解决方案来删除它:
1:通过将此代码添加到 nuxt.config.js 链接到堆栈答案
2:通过评论node_module/@nuxt/vue-renderer/dist/vue-renderer.js
文章链接中的一些代码
3:通过使用cheerio包并从正文 链接到文章中抓取脚本
这三个人都会完成这项工作,但是!我的组件将不再延迟加载,因为我使用 Vuex 中的状态来为延迟加载提供主题地址!例如:
它会给出错误 webpack 不能延迟加载 this 为this.$store.state.siteDirection
空。
我该如何解决这个问题?
javascript - 在 Vue 渲染函数中组合类名
我有一个使用渲染函数的 Vue 2 组件,如下所示:
当我像这样使用组件时:
HTML 输出为:
我怎样才能让它成为这样,以便合并 CSS 类名?
了解 Vue 2 和 3 中的答案会很有帮助。
javascript - 使用Vue组件渲染功能时的无限循环
我正在使用 Vue 组件来呈现一些表头,如下所示:
问题是,当在 hourIndex (通过数组运行)上完成 console.log 时,将进入无限循环。
getHourIndex
功能是:
任何关于为什么这样做这个无限循环的方向(考虑到 hourIndex 数组只有 25 个元素)都将不胜感激。
javascript - Vue.js - 更新和渲染数组的性能成本
我在重新渲染数组项时遇到问题。我希望有人可以帮助我。有一个代码: https ://codesandbox.io/s/vuex-store-forked-2qx1g?file=/src/App.vue
我们有包含项目数组的组件。模板仅呈现集合中的第一项。2 秒后,我们更改第一个项目的标题 - 调用更新的钩子,看起来正确 4 秒后,我们将新项目添加到数组 - 再次调用更新的钩子。我是否正确理解将项目添加到数组会导致所有先前项目的重新呈现?
或者更新的钩子意味着虚拟 DOM 发生了变化,但没有发生真正的重新渲染?无论如何,这种情况会成为大量数据的性能问题吗?
javascript - 如何使用`h`创建一个非空评论节点?
以下代码将生成一个空的注释节点,即<!---->
.
如何生成非空评论节点,例如<!-- Foo -->
使用h
?