首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vue.js中使用CDN组件?

如何在vue.js中使用CDN组件?
EN

Stack Overflow用户
提问于 2022-09-07 14:23:02
回答 2查看 912关注 0票数 0

我使用vue.js作为CDN。我需要关于如何构建一个应用程序以在index.html中显示组件的原理图的帮助。目前,我的结构如下:

代码语言:javascript
复制
<div id="app">

</div>
<script>
const { createApp } = Vue
createApp({

  data() {
    return {
      
    }
  
}).mount('#app')
</script>

component.js:

代码语言:javascript
复制
<template>
   <div>
      Test
   </div>
</template>


export default {
    data: () => ({
    }),
 
   
 }
EN

回答 2

Stack Overflow用户

发布于 2022-09-07 14:29:21

您可以尝试定义Vue并使用.component

代码语言:javascript
复制
//in other file
const component1 = {
  template: `<div> {{ item }} <p>{{ prop }}</p></div>`,
  props: ['prop'],
  data: () => ({ item: 'test' }),
}


const app = Vue.createApp({
  data: () => ({ someData: 'prop' }),
})
app.component('test', component1)
app.mount('#app')
代码语言:javascript
复制
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<div id="app">
  <test :prop="someData" />
</div>

票数 0
EN

Stack Overflow用户

发布于 2022-11-03 07:44:17

component_one.html

代码语言:javascript
复制
<p>component one</p>

component_two.html

代码语言:javascript
复制
<p>component {{two}}</p>
<input type="text" v-model="two"/>

component_three.html

代码语言:javascript
复制
<p>component three</p>

app.html

代码语言:javascript
复制
<router-link to="/">one</router-link> | 
<router-link to="/two">two</router-link>
<component_three/>
<router-view />

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.41/vue.global.min.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.1.6/vue-router.global.js"></script>
    <title>test</title>
</head>
<body>
    <div id="app"/>
    <script type="text/javascript" src="index.js"> </script>
</body>
</html>

index.js

代码语言:javascript
复制
const one = async () => {
    let template = await fetch("component_one.html")
    template = await template.text()
    return ({
        template: template,
        setup() {/*...*/ }
    })
}

const two = async () => {
    let template = await fetch("component_two.html")
    template = await template.text()
    return ({
        template: template,
        setup() {
            return {
                two: Vue.ref("TWO"),
            }
        }
    })
}

const three = async () => {
    let template = await fetch("component_three.html")
    template = await template.text()
    return ({
        template: template,
        setup() {/*...*/ }
    })
}

const app = async () => {
    let template = await fetch("app.html")
    template = await template.text()
    return ({
        template: template,
        components: {
            "component_three" : await three(),
        },
        setup() {/*...*/ }
    })
}

const init = async () => {
    const index = Vue.createApp(await app());       
    const routings = VueRouter.createRouter({
    history : VueRouter.createWebHashHistory(),
        routes : [
            {path:'/', component: await one()},
            {path:'/two', component: await two()}
        ]
    })
    index.use(routings)
    index.mount("#app")
}

init()

html文件被读取为字符串。也许把它们放在后端/数据库服务器中。为了更快地加载,请使用Promise.all([])对所有等待组件。工作示例:www.julven.epizy.com/vuetest

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73637154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档