hel-micro

news/2024/10/17 19:21:09/

我的博客

这篇文章少了图片(本地找不着了),可以在上面的链接中看到

关于

模块联邦sdk化,免构建、热更新、工具链无关的微模块方案

文档

开发并发布到npm

开发远程 vue 组件
####克隆模板库

克隆远程 vue 组件模板项目为rvc-xxx(名字请按实际需要修改,此处仅做示例)

https://github.com/hel-eco/hel-tpl-remote-vue-comp

改 package.json

nameappGroupName改为 hel 模块组名

  "name": " rvc-xxx","appGroupName": " rvc-xxx",

开发组件

src/components目录下新增组件,并src/components/index文件里导出即可

例子

像是这里已经发布的一个版本(已打包):
link
我这里只修改了:
src/components/index.js:

/*  
|--------------------------------------------------------------------------  
|  
| 这些组件暴露给使用方  
|  
|--------------------------------------------------------------------------  
*/  
import App from './App.vue';  
import HelloWorld from './HelloWorld.vue';  
import Button from '@/components/button.vue'  
import add from './tools'  export default {  App,  HelloWorld,  Button,  add  
};

src/components/button.vue:

<template>  <div class="button">  <slot></slot>  </div></template>  <script>  
export default {  name: "button"  
}  
</script>  <style scoped>  
.button {  border-radius: 4px;  padding: 0 3px;  margin: 3px 6px;  
}  
</style>

src/components/tools/index.js:

export default {  add: function (a, b) {  return a + b  }  
}

然后:

npm build
npm publish

即可,但是推送可能会有一定延迟
上面的例子是可以被调用的,这里写了一个button,一个add的方法

注意

在build之前改版本号
build之后的生成物是个版本号有关系的,如果版本号冲突,是无法推送的

调用(vue中)

我这里使用的例子:
link
会在上面的代码基础上进行增加并调用自己的远程库:

这里我在需要展示的vue文件中:

<template>  <div class="hello">  <h1>{{ msg }}</h1>  <p>      你好  </p>  <h5>下面这个是远程组件</h5>  <RemoteComp name="loaded in codesandbox"/>  <h5>下面这个是我自定义的组件</h5>  <remoteTest/>    <h5>下面这个是我的第二个组件</h5>  <remoteTestApp></remoteTestApp>    <h5>上面这个是远程组件</h5>  <button @click="remoteClick">点击加载</button>  <br>    <input type="text" v-model="a">+  <input type="text" v-model="b">  ={{ c }}  <button @click="add">add</button>  </div></template>  <script>  
// https://github.com/hel-eco/hel-tpl-remote-vue-comp  
import comps from "hel-tpl-remote-vue-comps"  import dtlib from 'ice-test-remote'  console.log(dtlib)  
export default {  name: "HelloWorld",  components: {  RemoteComp: comps.App,  remoteTest: dtlib.HelloWorld,  remoteTestApp: dtlib.App  },  props: {  msg: String,  },  data () {  return {  a: 0,  b: 0,  c: 0  }  },  methods: {  async remoteClick () {  const helMicro = await import('hel-micro')  const lib = await helMicro.preFetchLib('hel-tpl-remote-lib', { versionId: '2.0.1' })  console.log(lib.num.random(22))  },    async add () {  const helMicro = await import('hel-micro')  const { add } = await helMicro.preFetchLib('ice-test-remote', { versionId: '1.5.2' })  // 调用自定义方法  this.c = add.add(parseInt(this.a), parseInt(this.b))  }  },  mounted () {  }}  
</script>  <!-- Add "scoped" attribute to limit CSS to this component only -->  
<style scoped>  
h3 {  margin: 40px 0 0;  
}  ul {  list-style-type: none;  padding: 0;  
}  li {  display: inline-block;  margin: 0 10px;  
}  a {  color: #42b983;  
}  
</style>

这里调用function目前是点击时触发加载,第一次加载时会比较慢
这里的组件:dtlib,comps是本地已经安装的
这里是在使用到的组件中单独引入


http://www.ppmy.cn/news/1103835.html

相关文章

提升网络安全防御能力的几个方面

提升网络安全防御能力对于个人和组织来说都至关重要。网络安全是一个全面的概念&#xff0c;包括保护个人信息、防止恶意攻击和确保网络资源的安全。在这篇文章中&#xff0c;我将介绍几个方面来提高网络安全防御能力其中包括IP地址查询。 首先&#xff0c;IP地址查询是一种网…

mac 13.x 打开第三方应用,提示已损坏无法打开

前排提示&#xff0c;不一定有效 1、先在终端执行下面这个&#xff0c;因为要提权&#xff0c;输入自己的密码 sudo xattr -r -d com.apple.quarantine 具体应用 # 具体应用是一个路径&#xff0c;拖入 访达——应用程序——第三方应用 到终端就行 # sudo xattr -r -d com.app…

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行

首先感谢大家对上一个视频的点评回复&#xff0c;非常有意义的讨论&#xff0c;这次AC6的表现更新惊呆&#xff0c;不开优化都可以乱跳。 【实验目的】 同样的程序代码&#xff0c;目的是测试C环境的调试现象。 【实验版本】 IAR版本 &#xff1a;9.3x MDK版本&#xff1a;5…

【算法】常见位运算总结

目录 1.基础位运算2. 给一个数n&#xff0c;确定它的二进制表示中的第x位是0还是13.将一个数n的二进制表示的第x位修改成14.将一个数n的二进制表示的第x位修改成0、5. 位图的思想6.提取一个数(n)二进制表示中最右侧的17.干掉一个数(n)二进制表示中最右侧的18.位运算的优先级9.异…

nodejs+vue+elementui高校人事管理系统

总体设计 根据高校人事管理系统的功能需求&#xff0c;进行系统设计。 用户功能&#xff1a;用户进入系统可以实现首页、个人中心、职称申报管理、工资信息管理、绩效信息管理、奖惩信息管理、招聘管理等进行操作&#xff1b; 院长功能&#xff1a;院长进入系统可以实现首页、个…

使用tornado实现sse

sse SSE&#xff08;Server-Sent Events&#xff0c;服务器推送事件&#xff09;是一种用于在服务器和客户端之间建立单向持久连接&#xff0c;允许服务器实时向客户端推送数据的网络通信协议。SSE是基于HTTP协议的&#xff0c;它允许服务器不断地将事件消息发送到客户端浏览器…

Redis事务机制

Redis 是一款开源的、内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。在日常的使用中&#xff0c;我们经常会遇到需要一次执行多个命令&#xff0c;并且这些命令要么全部成功&#xff0c;要么全部失败的场景。这就需要用到 Redis 的事务机制。 Redi…

【驱动开发】实现三盏灯的控制,编写应用程序测试

head.h #ifndef __HEAD_H__ #define __HEAD_H__//LED1:PE10 //LED2:PF10 //LED3:PE8#define LED_RCC 0X50000A28 //使能GPIO#define LED_MODER 0X50006000 //设置输出模式 #define LED_ODR 0X50006014 //设置输出高低电平#define LED2_MODER 0X50007000 …