当前位置: 首页 > news >正文

专业的网站建设联系方式网架公司招聘信息

专业的网站建设联系方式,网架公司招聘信息,石家庄的网站建设公司,网站建设怎么搞在 Vue.js 3 中,使用 vue3-sfc-loader 可以动态加载异步的 Vue 单文件组件(.vue 文件)。这个工具允许你在运行时根据需要加载和解析 .vue 文件,使得组件的加载变得更加灵活和动态。 下面是一个简单的示例,演示如何使用…

在 Vue.js 3 中,使用 vue3-sfc-loader 可以动态加载异步的 Vue 单文件组件(.vue 文件)。这个工具允许你在运行时根据需要加载和解析 .vue 文件,使得组件的加载变得更加灵活和动态。

下面是一个简单的示例,演示如何使用 vue3-sfc-loader 动态加载一个异步的 Vue 组件:

安装依赖: 首先,需要安装 vue3-sfc-loader@vue/compiler-sfc(Vue 3 的单文件组件编译器)。

import { loadModule } from "vue3-sfc-loader";

开始加载时需要知道的事

defineAsyncComponent 是 Vue 3 提供的用于定义异步组件的函数

<template><div><component :is="previewComp"></component></div>
</template>
  • <component :is="previewComp"></component> 是动态组件,根据 previewComp 的值来决定显示哪个组件。

 

import {ref,defineAsyncComponent,shallowRef,watch,onMounted,nextTick,
} from "vue";
import * as Vue from "vue";
import * as Cesium from "cesium";
import { loadModule } from "vue3-sfc-loader";
//映入你需要渲染的资源。包含js 在下面的代码中需要再次注册,

比如我们的vue下面仍然需要注册,第三方资源包也是如此

const init = (code: string) => {try {const options = {moduleCache: {vue: Vue,cesium: Cesium,},async getFile() {return code;},addStyle(textContent) {const style = Object.assign(document.createElement("style"), {textContent,});const ref = document.head.getElementsByTagName("style")[0] || null;document.head.insertBefore(style, ref);},};const comp = defineAsyncComponent(() =>loadModule("myComponent.vue", options));previewComp.value = comp;} catch (err) {console.error(err);}
};
  • init 方法是初始化方法,根据传入的 code 加载模块并设置到 previewComp
  • moduleCache:这是一个对象,用来缓存模块。根据代码中的变量命名,它可能预先加载了一些模块,例如 VueFFCesiumCesiumturfCesiumNavigation。这些模块可以在加载 myComponent.vue 组件时使用。

  • etFile() 函数:这是一个异步函数,返回值是传入的 code 参数,即函数初始化时传入的字符串。

  • defineAsyncComponent() 是一个 Vue 3 提供的函数,用于定义异步组件。它接受一个函数作为参数,这个函数返回一个 Promise,用来加载和解析组件。
  • loadModule("myComponent.vue", options) 调用 loadModule 函数加载名为 myComponent.vue 的 Vue 组件,并传入之前定义的 options 对象作为配置。

 就是这样拉。

然而我的示例里面previewComp是外面编辑器传进来的。展示一下源码

<template><div v-if="show" class="big"><component :is="previewComp"></component></div>
</template><script setup lang="ts">
import {ref,defineAsyncComponent,shallowRef,watch,onMounted,nextTick,
} from "vue";
import * as Vue from "vue";
import * as Cesium from "cesium";
import { loadModule } from "vue3-sfc-loader";
import * as turf from "@turf/turf";
import * as CesiumNavigation from "cesium-navigation-es6"; //指南针插件
import FFCesium from "@/FFCesium/core/index.js";let show = ref(false);
// import { particle } from "../cesium/resoure/index.ts";
const props = defineProps({code: {type: String,required: true,},
});
watch(() => props.code,(newValue, oldValue) => {// 这里可以执行其他操作console.log("监听");init(newValue);}
);onMounted(() => {// 初始化show.value = true;// 初始化init(props.code);
});
const setCode = (code: string) => {show.value = false;// 重新渲染显示页,解决改错报错不再回归console.log("yunx,shuoax");nextTick(() => {show.value = true;// 在父组件里面再调用一次init(code);});
};defineExpose({ setCode });const previewComp = shallowRef();
const init = (code: string) => {// console.log("FFCesium12", FFCesium);try {const options = {moduleCache: {vue: Vue,FFCesium: FFCesium,cesium: Cesium,turf: turf,CesiumNavigation: CesiumNavigation,},async getFile() {return code;},addStyle(textContent) {const style = Object.assign(document.createElement("style"), {textContent,});const ref = document.head.getElementsByTagName("style")[0] || null;document.head.insertBefore(style, ref);},};const comp = defineAsyncComponent(() =>loadModule("myComponent.vue", options));previewComp.value = comp;} catch (err) {console.error(err);}
};
// // 初始化
// init(props.code);
</script>
<style scoped>
.big {width: 100%;height: 100%;
}
</style>

http://www.yayakq.cn/news/375765/

相关文章:

  • 风景旅游网站建设的设计思路呼和浩特网站开发 千投
  • 岳阳云溪区建设局网站室内设计师招聘简章
  • 南昌做网站电话网络营销策划书范文
  • wordpress 屏蔽搜索引擎一键优化什么意思
  • 广州网站建设索王道下拉有哪些可以在网上做兼职的网站
  • 做海报免费素材网站有哪些制作网页所用的语言是什么
  • 网站建设大作业北京 网站建设大全
  • 网站怎么添加导航栏python官方网站
  • 无法访问此网站是什么原因物流百度推广怎么做网站
  • 展示型网站有哪些ux主题wordpress
  • 天津建设厅官方网站j2ee 做网站
  • 有源码手机怎么搭建网站河北建设厅网站修改密码在哪
  • 重庆南昌网站建设辽宁建设工程信息网招标
  • p2p网站如何做推广网站上点击图片局部放大如何做
  • vs网站开发视频教程环球经贸网
  • 江西求做网站wordpress 评论通知
  • php 导航网站有没有可以免费做试卷的网站_最好可以学会...
  • 苏州建设工程检测协会网站深圳网站设计公司排名前十
  • 网站制作深圳乡村振兴网站建设
  • 网站建设合同属于技术服务合同吗瓜子二手车网站开发
  • 开发区网站制作公司美容养生行业WordPress主题
  • 网站设计制作价格怎么样网络营销案例有哪些
  • h5 建站网站 移动端网站点击量查询
  • php网站开发程序编译软件网站建设私活
  • 创建网站基本步骤用微信怎么做商城网站
  • 汉中市住建局建设厅网站官网深圳招工网站
  • 佛山网站建设骏域网站建设专家建设网站的相关软件
  • 吉林大学建设工程学院官方网站基金网站开发
  • 网站建设技术难题互联网创业项目ppt模板
  • 织梦做的的网站首页显示空白游戏软件开发培训学校