微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VueJS V3 - 渲染动态组件

如何解决VueJS V3 - 渲染动态组件

试图了解如何将组件动态渲染到我的父页面中。 我假设我将有一个对象数组,其中每个对象都有一个组件名称和绑定到对象参数的数据字段。这表明如果一个组件在页面上重复两次或更多次,则字段绑定对于组件实例必须是唯一的。

下面我收到一条错误消息:

"[Vue 警告]: 组件缺少模板或渲染函数。at at "

经过数小时的阅读和反复试验,我不得不暂时放弃并寻求帮助。这是我的代码

default.html

    !DOCTYPE html>
        <html lang="en">
        
        <head>
            <Meta charset="UTF-8" />
            <title>Agenda to Minutes</title>
            <!-- Import Styles -->
            <!-- <link rel="stylesheet" href="./assets/styles.css" /> -->
            <!-- Import Vue.js -->
            <script src="https://unpkg.com/vue@next"></script>
        </head>
        
        <body>
            <div id="app">
        
                htmlData: {{htmlData}} <br>
                this.htmlData: {{this.htmlData}} <br>
                    
                <dynamic-one></dynamic-one>
        
            </div>
        
            <!-- Import App -->
            <script src="./main.js"></script>
        
            <!-- Import Components -->
            <script src="./components/dynamicOne.js"></script>
        
            <!-- Mount App -->
            <script>
                app.component('my-dynamic-component',{/* defination */})
                const mountedApp = app.mount('#app')
        
                _this = mountedApp;
                _this.htmlData = '<div>Hello - {{someVar}}</div>'
        
            </script>
        </body>
        </html>

我的组件页面

        app.component('dynamic-one',{
            props: {
                templateHtml: {
                    templateHtml: true,type: String
                }
            },data() {
                return {
                    someVar: 'Test',htmlData:'xyz'
                }
            },template:
                /*html*/
                <div>
                    <!-- _this.htmlData: {{_this.htmlData}} -->
        
                dynamicOne : {{this.htmlData}}
        
                    <my-dynamic-component :template-html="htmlData" />
                </div>,created() {
                this.$options.template = this.templateHtml
            }
        })

ma​​in.js

    
        const app = Vue.createApp({
            data() {
                return {
                    htmlData: 'myName'
                }
            }
        })
```
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?