首页 > 其他分享 >vue2加载远程组件

vue2加载远程组件

时间:2023-12-20 14:26:15浏览次数:34  
标签:style const url res test vue2 组件 data 加载

<template>
<div class="async-component">
<div @click="child">hahah</div>
<component ref="test" :is="remote" v-if="remote" :test="test" @handler="haha"/>
</div>
</template>

<script>
import Vue from 'vue/dist/vue.common.js'
import {
loadModule
} from 'vue3-sfc-loader/dist/vue2-sfc-loader.js'
export default {
name: 'AsyncComponent',
inheritAttrs: false,
data() {
return {
remote: null,
test:"123"
}
},
mounted() {
this.load()
},
methods: {
haha(data){
alert(data)
},
child(){
this.$refs.test.handler("525555")
},
// 加载
async load() {
let baseURL = urlConfig.jkFlag ? urlConfig.jkApi : process.env.VUE_APP_API;
let url=baseURL+'/views/test.vue'
const com = await loadModule(url, {
moduleCache: {
vue: Vue,
},
// 获取文件
async getFile(url) {
const res = await fetch(url)
if (!res.ok) {
throw Object.assign(new Error(`${res.statusText} ${url}`), {
res
})
}
return {
getContentData: asBinary => (asBinary ? res.arrayBuffer() : res.text()),
}
},
// 添加样式
addStyle(textContent) {
const style = Object.assign(document.createElement('style'), {
textContent
})
const ref = document.head.getElementsByTagName('style')[0] || null
document.head.insertBefore(style, ref)
},
})
this.remote = com
},
},
}
</script>
<style>
.async-component {
width: 100%;
}
</style>

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++

<template>
<div class="testText" @click="haha">
<a-button type="primary">
Primary
</a-button>{{test}}哈哈哈哈哈哈哈哈哈哈哈哈交互交互加黑胡椒
</div>
</template>

<script>
export default {
props: ['test'],
mounted() {
console.log(this.$api)
},
methods: {
haha() {
this.$emit("handler", "fddsfdfsdfs")
},
handler(data) {
alert(data)
}
}
}
</script>

<style scoped>
.testText {
color: #fff;
}
</style>

标签:style,const,url,res,test,vue2,组件,data,加载
From: https://www.cnblogs.com/huangzg/p/17916409.html

相关文章

  • 【前端VUE】VUE通信组件学习(附源代码)
    propsprops可以实现父子组件通信,不管是在vue2或者vue3,props数据还是只读的!!!不能直接修改其值;在vue3中,我们可以通过defineProps获取父组件传递的数据,且在组建内部不需要引入defineProps方法可以直接使用,如下面例子Parent.vue//父组件<template><h3>props组件案例</h3......
  • 在Spring Cloud使用Hystrix核心组件,并注册到Eureka注册中心去
    其实吧,写SpringCloud系列,我有时候觉得也挺难受的,因为SpringCloud的微服务启动都需要一个一个来,并且在IDea中也需要占用比较大的内存,并且我本来可以一篇写完5大核心组件的,但是我却分了三篇,起初我交代过,这个系列,我将会慢慢来,因为我希望,将模块查分,这样我自己去理的时候也蛮清楚,别人......
  • 在Spring Cloud中使用组件Ribbon和Feign,并分别创建子模块注册到Eureka中去
    ok,在上篇文章中我们讲了在Springcloud中使用Zuul网关,这篇文章我们将SpringCloud的五大核心组件的Ribbon和Feign分别创建一个微服务模块。题外话,本篇博客就是配置子模块,或者说是微服务,然后将微服务正式启动之前,将所有的服务注册到Eureka注册中心去,方便我们查看我们的微服务是否正......
  • 【GiraKoo】Oh-my-posh加载速度慢
    【解决方案】Oh-my-posh加载速度慢背景说明最近沉迷于美化控制台。Oh-my-posh应该是其中做的比较出色的。可惜在本地使用时。加载速度异常缓慢.启动程序需要600ms,甚至是1s以上。立刻就劝退了我。但是尝试了其他美化工具之后。慢慢发现,这个现象并不只是Oh-my-posh……于是,开......
  • 十七、组件-基础组件-Button
    Button按钮组件,可快速创建不同样式的按钮。方法1:Button(options?:{type?:ButtonType,stateEffect?:boolean})方法2:Button(label?:ResourceStr,options?:{type?:ButtonType,stateEffect?:boolean})使用文本内容创建相应的按钮组件,此时Button无法包含子组件。 案例代码:@Entr......
  • 十六、组件-通用属性-位置设置
    位置设置设置组件对齐方式、布局方向和显示位置。align:设置元素内容在元素绘制区域内的对齐方式。direction:设置元素水平方向的布局。position:基于父容器的定位markAnchor:相对于自身的定位,x正数代表左移,负数代表右移;y正数代表上移,负数代表下移。offset:相对于自身的定......
  • 实践解析HPA各关联组件扭转关系
    本文分享自华为云社区《HPA各关联组件扭转关系以及建议》,作者:可以交个朋友。一、背景应用程序的使用存在波峰波谷现象,在应用流量处于低谷期间,可以释放因过多的Pod而浪费的硬件资源。在应用流量高峰期提供弹性足够的Pod处理流量。二、HPA各个组件扭转关系kubernetes使用者通过......
  • C++ Qt开发:QItemDelegate 自定义代理组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStyledItemDelegate自定义代理组件的常用方法及灵活运用。在Qt中,QStyledItemDelegate类是用于......
  • leaflet在vue2中标点 加载geoJSON
    lealfet版本1.9.4vue版本2.6引入:importLfrom'leaflet'  import'leaflet/dist/leaflet.css'  //记得引入样式不然加载瓦片图后地图会错乱1.初始化this.map=L.map(this.mapId,mapInitOptionNew)//this.mapId是容器的idletcenter=[32.666,129.547]const......
  • element ui中同级button调用upload组件
    代码<el-uploadref="schoolLogo"class="avatar-uploader"action="https://jsonplaceholder.typicode.com/posts/":show-file-list="false":on-success="handleAvatarSuccess":before-u......