实操指南|如何用 OpenTiny Vue 组件库从 Vue 2 升级到 Vue 3

vue2项目升级到vue3总结 为了更快更准确的将vue2项目升级至vue3,因此在本次的升级中代码结构保持不变,后续新写的页面再可以采用组合式API的写法。(1)全局搜索 slot-scope="scope" 直接全局替换 成 #default="scope"9、分页组件中的current-page.sync,修改为 v-model:current-page。elsub-menu 改成 el-sub-menu,包括样式里classname中的。5、el-dialog、el-drawer修改。三、修改配置文件及vue全局api。 阅读详情

前言

根据 Vue 官网文档的说明,Vue2 的终止支持时间是 2023 年 12 月 31 日,这意味着从明年开始:

  • Vue2 将不再更新和升级新版本,不再增加新特性,不再修复缺陷

图片

虽然 Vue3 正式版本已经发布快3年了,但据我了解,现在依然还有很多业务在使用 Vue2,迟迟没有升级 Vue3。

为什么要等到 Vue2 彻底停止维护,才考虑升级 Vue3 这个如此重要的问题呢???

本文是一篇 Vue2 升级 Vue3 的指南,主要包含以下部分:

  1. 使用 Vue CLI 搭建 Vue2 工程
  2. 使用 ElementUI 搭建表格、表单
  3. 使用 OpenTiny Vue 替换一个组件
  4. 使用 OpenTiny Vue 替换一个页面
  5. 使用 OpenTiny Vue 替换整个应用
  6. 使用 gogocode 升级到 Vue3,组件代码无需修改

创建 Vue 2项目

先用 Vue CLI 创建一个 Vue2 项目(也可以使用 Vite 配合  @vitejs/plugin-vue2 或 vite-plugin-vue2 插件)。

// 安装 Vue CLI
npm install -g @vue/cli

// 创建 Vue2 项目
vue create vue2-demo

输出以下信息说明项目创建成功

🎉  Successfully created project vue2-demo.
👉  Get started with the following commands:

$ cd vue2-demo
$ yarn serve

创建好之后可以执行以下命令启动项目

yarn serve

输出以下命令说明启动成功

App running at:
- Local:   http://localhost:8080/ 
- Network: http://192.168.1.102:8080/

效果如下

图片

使用 ElementUI 搭建表格、表单

安装 VueRouter

npm i vue-router@3

main.js

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: () => import('./components/HomePage.vue')
    },
    {
      path: '/form',
      component: () => import('./components/FormPage.vue')
    },
    {
      path: '/list',
      component: () => import('./components/ListPage.vue')
    }
  ]
})

Vue.config.productionTip = false
Vue.use(VueRouter)

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

App.vue

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">

    <p>
      
      
      
      <router-link to="/">Home</router-link>
      <router-link to="/form">Form</router-link>
      <router-link to="/list">List</router-link>
    </p>
    
    
    <router-view></router-view>
  </div>
</template>

安装 ElementUI

npm i element-ui

在 src/views/FormPage.vue 中使用 ElementUI 组件,从 ElementUI 官网组件 demo 里面拷贝代码即可。

典型表单:https://element.eleme.io/#/zh-CN/component/form#dian-xing-biao-dan

<template>
<el-form ref="form" :model="form" label-width="80px">
  <el-form-item label="活动名称">
    <el-input v-model="form.name"></el-input>
  </el-form-item>
  <el-form-item label="活动区域">
    <el-select v-model="form.region" placeholder="请选择活动区域">
      <el-option label="区域一" value="shanghai"></el-option>
      <el-option label="区域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="活动时间">
    <el-col :span="11">
      <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
    </el-col>
    <el-col class="line" :span="2">-</el-col>
    <el-col :span="11">
      <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
    </el-col>
  </el-form-item>
  <el-form-item label="即时配送">
    <el-switch v-model="form.delivery"></el-switch>
  </el-form-item>
  <el-form-item label="活动性质">
    <el-checkbox-group v-model="form.type">
      <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
      <el-checkbox label="地推活动" name="type"></el-checkbox>
      <el-checkbox label="线下主题活动" name="type"></el-checkbox>
      <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
    </el-checkbox-group>
  </el-form-item>
  <el-form-item label="特殊资源">
    <el-radio-group v-model="form.resource">
      <el-radio label="线上品牌商赞助"></el-radio>
      <el-radio label="线下场地免费"></el-radio>
    </el-radio-group>
  </el-form-item>
  <el-form-item label="活动形式">
    <el-input type="textarea" v-model="form.desc"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即创建</el-button>
    <el-button>取消</el-button>
  </el-form-item>
</el-form>
</template>
<script>
  export default {
    data() {
      return {
        form: {
          name: '',
          region: '',
          date1: '',
          date2: '',
          delivery: false,
          type: [],
          resource: '',
          desc: ''
        }
      }
    },
    methods: {
      onSubmit() {
        console.log('submit!');
      }
    }
  }
</script>

效果如下

图片

表格页面也一样。

src/views/ListPage.vue

<template>
  <div>
    <div class="filter-bar">
      <el-select v-model="value" placeholder="请选择">
        <el-option
          v-for="item in options"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        >
        </el-option>
      </el-select>
      <el-date-picker v-model="value1" type="daterange"> </el-date-picker>
      <el-input
        v-model="search"
        placeholder="输入关键字搜索"
        style="width: 300px"
      />
      <el-button>搜索</el-button>
    </div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="日期" width="180"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
      <el-table-column prop="address" label="地址"> </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      value1: '',
      options: [
        {
          value: '选项1',
          label: '王小虎'
        },
        {
          value: '选项2',
          label: '张三'
        },
        {
          value: '选项3',
          label: '李小萌'
        },
        {
          value: '选项4',
          label: '令狐冲'
        }
      ],
      value: '',
      search: '',
      tableData: [
        {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        },
        {
          date: '2016-05-04',
          name: '张三',
          address: '上海市普陀区金沙江路 1517 弄'
        },
        {
          date: '2016-05-01',
          name: '李小萌',
          address: '上海市普陀区金沙江路 1519 弄'
        },
        {
          date: '2016-05-03',
          name: '令狐冲',
          address: '上海市普陀区金沙江路 1516 弄'
        }
      ]
    }
  }
}
</script>

<style lang="less" scoped>
.filter-bar {
  display: flex;

  & > * {
    margin-right: 20px;
  }
}
</style>

效果如下

图片

首页可以放一张轮播图。

src/views/HomePage.vue

<template>
  <el-carousel>
    <el-carousel-item v-for="item in 4" :key="item">
      <img :src="`https://picsum.photos/1350/900?random=${item}`" style="width: 100%;">
    </el-carousel-item>
  </el-carousel>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 14px;
    opacity: 0.75;
    line-height: 150px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
     background-color: #99a9bf;
  }
  
  .el-carousel__item:nth-child(2n+1) {
     background-color: #d3dce6;
  }
</style>

效果如下

图片

参考:

  • 表单:https://element.eleme.io/#/zh-CN/component/form
  • 表格:https://element.eleme.io/#/zh-CN/component/table
  • 轮播:https://element.eleme.io/#/zh-CN/component/carousel

****

使用 OpenTiny Vue 替换一个组件

OpenTiny Vue 的组件都是支持按需引入的,一开始我们步子不要迈得太大,先尝试替换一个 Button 组件。

安装  @opentiny/vue@2

npm i @opentiny/vue@2

图片

表单页面里面有两个按钮,我们尝试将其替换成 OpenTiny Vue 的 Button 组件。

替换的步骤很简单,不需要修改现有的代码,只需要增加4行代码即可。

src/views/FormPage.vue

<template>
<el-form ref="form" :model="form" label-width="80px">
  <el-form-item label="活动名称">
    <el-input v-model="form.name"></el-input>
  </el-form-item>
  ...
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即创建</el-button>
    <el-button>取消</el-button>
  </el-form-item>
</el-form>
</template>
<script>
+  import { Button } from '@opentiny/vue'

  export default {
+    components: {
+      ElButton: Button
+    },
    data() {
      return {
        form: {
          name: '',
          ...
        }
      }
    },
    methods: {
      onSubmit() {
        console.log('submit!');
      }
    }
  }
</script>

效果如下

图片

使用 OpenTiny Vue 替换一个页面

接下来我们步子逐渐迈大一点,将整个 FormPage 页面的 ElementUI 组件全部替换成 OpenTiny Vue 的组件。

FormPage 页面一共有以下组件:

  • Button
  • Form
  • FormItem
  • Input
  • Select
  • Option
  • Col
  • DatePicker
  • TimePicker
  • Switch
  • CheckboxGroup
  • Checkbox
  • RadioGroup
  • Radio

替换的方式和前面替换 Button 组件一模一样,只需要多加一些组件。

<template>
<el-form ref="form" :model="form" label-width="80px">
  <el-form-item label="活动名称">
    <el-input v-model="form.name"></el-input>
  </el-form-item>
  ...
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即创建</el-button>
    <el-button>取消</el-button>
  </el-form-item>
</el-form>
</template>
<script>
  import {
    Button,
+    Form,
+    FormItem,
+    Input,
+    Select,
+    Option,
+    Col,
+    DatePicker,
+    TimePicker,
+    Switch,
+    CheckboxGroup,
+    Checkbox,
+    RadioGroup,
+    Radio,
  } from '@opentiny/vue'

  export default {
    components: {
      ElButton: Button,
+      ElForm: Form,
+      ElFormItem: FormItem,
+      ElInput: Input,
+      ElSelect: Select,
+      ElOption: Option,
+      ElCol: Col,
+      ElDatePicker: DatePicker,
+      ElTimePicker: TimePicker,
+      ElSwitch: Switch,
+      ElCheckboxGroup: CheckboxGroup,
+      ElCheckbox: Checkbox,
+      ElRadioGroup: RadioGroup,
+      ElRadio: Radio,
    },
    data() {
      return {
        form: {
          name: '',
          ...
        }
      }
    },
    methods: {
      onSubmit() {
        console.log('submit!');
      }
    }
  }
</script>

效果如下

图片

使用 OpenTiny Vue 替换整体应用

最后一步就是使用 OpenTiny Vue 替换整个应用的 ElementUI。

我们可以用前面的方法进行替换,但考虑到整个应用的页面众多,我们采取另一种方式。

我们已经全局注册了 ElementUI 组件库,接下来我们全局注册 OpenTiny Vue 组件库。

import Vue from 'vue'
- import ElementUI from 'element-ui'
- import 'element-ui/lib/theme-chalk/index.css'
+ import TinyVue from '@opentiny/vue'
import App from './App.vue'
import VueRouter from 'vue-router'

- Vue.use(ElementUI)
+ Vue.use(TinyVue)

const router = new VueRouter({
  routes: [
    ...
  ]
})

Vue.config.productionTip = false
Vue.use(VueRouter)

new Vue({
  router,
  render: (h) => h(App)
}).$mount('#app')

然后全局替换 el- 为 tiny-,一步到位!

图片

效果如下

首页轮播

图片

表单

图片

表格

图片

是不是非常丝滑,更丝滑的还在后面!

接下来我们将借助一款神器:gogocode,实现 Vue2 项目平滑升级 Vue3。

使用 gogocode 升级到 Vue3

安装 gogocode:

npm install gogocode-cli -g

转换源码:

gogocode -s ./src/ -t gogocode-plugin-vue -o ./src/

升级依赖:

gogocode -s package.json -t gogocode-plugin-vue -o package.json

升级 TinyVue 组件库到 3.0 版本

npm i @opentiny/vue@3

组件代码无需做任何修改,完成 Vue2 项目平滑升级到 Vue3 🎉

执行 npm run dev 命令启动项目,除了 Vue 版本号变化之后,其他任何效果都没有变化。

首页轮播

图片

表单

图片

表格

图片

遇到的问题

问题一:error ‘v-model’ directives require no argument vue/no-v-model-argument

解决方法:修改 FormPage.vue 中的 v-model:value 为 v-model 即可

问题二:Failed to resolve component: router-link

解决方案:修改 main.js 中 use(router) 代码顺序即可

window.$vueApp = Vue.createApp(App)

window.$vueApp.mount('#app')
import * as Vue from 'vue'
import TinyVue from '@opentiny/vue'
import App from './App.vue'
import * as VueRouter from 'vue-router'

- window.$vueApp.use(TinyVue)

const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes: [
    ...
  ],
})

window.$vueApp = Vue.createApp(App)
+ window.$vueApp.use(TinyVue)
+ window.$vueApp.use(router) // 这一行代码需要放到 mount 之前
window.$vueApp.mount('#app')
window.$vueApp.config.globalProperties.routerAppend = (path, pathToAppend) => {
  return path + (path.endsWith('/') ? '' : '/') + pathToAppend
}

- window.$vueApp.use(router)

如果你在升级 Vue3 的过程中遇到任何问题,欢迎在评论区进行讨论,也欢迎添加 OpenTiny 小助手 opentiny-official 与我们交流!

本文涉及到的源码链接:

  • https://github.com/opentiny/cross-framework-component

Element 升级 OpenTiny 的 demo 项目在 packages/element-to-opentiny 子包里。

  • vue2 项目在 vue2 分支
  • vue3 项目在 vue3 分支

关于 OpenTiny

图片

OpenTiny 是一套企业级 Web 前端开发解决方案,提供跨端、跨框架的UI组件库,适配 PC 端 / 移动端等多端,支持 Vue2 / Vue3 / Angular 多技术栈,拥有灵活扩展的低代码引擎,包含主题配置系统 / 中后台模板 / CLI 命令行等丰富的效率提升工具,可帮助开发者高效开发 Web 应用。

核心亮点:

  • 跨端跨框架: 使用 Renderless 无渲染组件设计架构,实现了一套代码同时支持 Vue2 / Vue3,PC / Mobile 端,并支持函数级别的逻辑定制和全模板替换,灵活性好、二次开发能力强。

  • 组件丰富:PC 端有100+组件,移动端有30+组件,包含高频组件 Table、Tree、Select 等,内置虚拟滚动,保证大数据场景下的流畅体验,除了业界常见组件之外,我们还提供了一些独有的特色组件,如:Split 面板分割器、IpAddress IP 地址输入框、Calendar 日历、Crop 图片裁切等。

  • 低代码引擎:低代码引擎使能开发者定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过下载源码进行二次开发,实时定制出自己的低代码平台。适用于多场景的低代码平台开发,如:资源编排、服务端渲染、模型驱动、移动端、大屏端、页面编排等。

  • 配置式组件: 组件支持模板式和配置式两种使用方式,适合低代码平台,目前团队已经将 OpenTiny 集成到内部的低代码平台,针对低码平台做了大量优化。

  • 周边生态齐全: 提供了基于 Angular + TypeScript 的 TinyNG 组件库,提供包含 10+ 实用功能、20+ 典型页面的 TinyPro 中后台模板,提供覆盖前端开发全流程的 TinyCLI 工程化工具,提供强大的在线主题配置平台 TinyTheme。


欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~

OpenTiny 官网:https://opentiny.design/

OpenTiny 代码仓库:https://github.com/opentiny/

TinyVue 源码: https://github.com/opentiny/tiny-vue

TinyEngine 源码: https://github.com/opentiny/tiny-engine

欢迎进入代码仓库 Star🌟TinyEngine、TinyVue、TinyNG、TinyCLI~

如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~

往期文章推荐

图片

1、低代码引擎 TinyEngine 正式发布!!!

2、必不可少的UI组件一——组件的基础知识

3、OpenTiny Vue 3.10.0 版本发布:组件 Demo 支持 Composition 写法,新增4个新组件

4、前端Vuer,请收好这份《Vue组件单元测试》宝典

5、OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

6、从自研走向开源的 TinyVue 组件库

7、我要做开源,提交我的第一个PR

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构 在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域的创新。TinyVue 继承了 HAE、AUI,OpenTiny 是一套企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。 阅读详情

相关推荐

玄机-Linux权限维持-后门

玄机-Linux权限维持-后门

m0_46439803的博客 764

分享OpenTiny总结VUE目录结构

OpenTiny总结VUE目录结构,在设计规范和基础组件的基础上, 继续向上构建,提炼出典型模板/业务组件/配套设计资源,进一步提升企业级中后台产品设计研发过程中的『用户』和『设计者』的体验。

通达的博客 1532

Androiud安卓链接sqllite的代码使用案例

【代码】Androiud安卓链接sqllite的代码使用案例。

laterstage的博客 1328

一个 OpenTiny,Vue2 Vue3 都支持!

TinyVue 是一套跨端、跨框架的企业级 UI 组件库,支持 Vue 2 和 Vue 3,支持 PC 端和移动端。今天给大家介绍如何同时在 Vue2 和 Vue3 项目中使用 TinyVue。

kagol的博客 339

RK-XCKU5P RoCEv2 传感器桥工程分析报告

烧入后这块 FPGA 就是一个固定身份(CA:FE:C0:FF:EE:00 / 192.168.0.2 / 无 FEC 100G)的RoCEv2 UC 端点,每秒在 UDP 12267 广播自报家门;对端 CX5 只要关 FEC、配 192.168.0.101 +MTU 4200,就能 ping 通它、用 UDP 8192 读写它的全部寄存器、再按"ECB 旁路交换 QPN/rkey"的方式建立 UC RDMA 通道收发数据。

eloudy的专栏 245

28-基于STM32单片机的便携式健康监测系统设计与实现(程序+原理图+元件清单)

本文详细介绍了基于STM32单片机的便携式健康监测系统设计与实现,该系统集成MAX30102光电传感器和MSP20压力传感器,实时监测心率、血氧和血压等关键生理指标。通过STM32F103C8T6主控芯片和HC-05蓝牙模块,实现数据采集、处理及无线传输,具有便携性高、操作简便等特点,适用于家庭健康监护和户外运动场景。

weixin_29191669的博客 420

TinyVue - 华为云 OpenTiny 出品的企业级前端 UI 组件库,免费开源,同时支持 Vue2 / Vue3,自带 TinyPro 中后台管理系统

华为最新发布的前端 UI 组件库,支持 PC 和移动端,自带了 admin 后台系统,完成度很高,web 项目开发又多一个选择。

那些免费的砖 3618

腾讯WeKnora开源了!手把手教你用Docker+Ollama本地部署多模态知识库(附避坑指南)

本文详细介绍了腾讯开源的多模态知识库工具WeKnora的本地部署方法,通过Docker和Ollama实现完全离线运行。文章包含环境准备、核心组件配置、Ollama模型集成、系统启动验证及高级性能调优等实战内容,特别适合需要构建私有化知识库的中小团队和个人开发者。

weixin_30664051的博客 479

感恩有你|恭喜 OpenTiny Vue 开源组件库喜迎1000+star!!!

OpenTiny社区的 TinyVue 组件库终于突破1000+star~对此,参与 OpenTiny 开源的各位项目成员也是十分激动和开心,因此也是在内部进行了一个小小的庆祝。同时大家也希望持续不断的将项目做的越来越好,拓展其能力边界,让更多开发者受益,帮助大家高效搭建web页面!共建开源生态~大家也一起喊出了对于 OpenTiny 的期待。2023年2月16日,OpenTiny Vue 组件库正式开源。和业界组件库相比,TinyVue。

OpenTiny的博客 1260

PostgreSQL+PostGIS空间数据入库实战:从矢量栅格到GeoServer发布全流程

本文详细介绍了将矢量与栅格空间数据导入PostgreSQL并利用PostGIS扩展进行管理的完整流程。内容涵盖环境搭建、使用shp2pgsql和raster2pgsql工具进行数据入库、基础空间查询验证,以及最终通过GeoServer发布为地图服务的实战步骤,为构建空间数据平台提供清晰指引。

weixin_29268267的博客 289

YOLOv11【第二章:核心模块进阶篇·第3节】LDConv线性可变形卷积改进YOLOv11!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 7441

OpenTiny/TinyVue Vue2兼容:Vue2.7升级迁移指南

还在为Vue2.6到Vue2.7的升级迁移而头疼吗?面对Composition API(组合式API)的诱惑,却担心现有项目的大规模重构?OpenTiny/TinyVue为你提供了完美的解决方案!本文将详细介绍如何在TinyVue项目中平滑地从Vue2.6升级到Vue2.7,享受Vue3的语法特性而不破坏现有代码。 通过本文,你将获得: - Vue2.7的核心特性解析 - 完整的升级迁移路线图 ...

gitblog_00781的博客 1197

华为OD机考双机位C卷 - 打印机队列 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 打印机队列

算法大师! 4619

少年,该升级 Vue3 了!

根据 Vue 官网文档的说明,Vue2 的终止支持时间是 2023 年 12 月 31 日,这意味着从明年开始:Vue2 将不再更新和升级新版本,不再增加新特性,不再修复缺陷虽然 Vue3 正式版本已经发布快3年了,但据我了解,现在依然还有很多业务在使用 Vue2,迟迟没有升级 Vue3。为什么要等到 Vue2 彻底停止维护,才考虑升级 Vue3 这个如此重要的问题呢???本文是一篇 Vue2 升级 Vue3 的指南,主要包含以下部分:使用 Vue CLI 搭建 Vue2 工程。

Web面试那些事儿的博客 1387

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

直播回顾|带你体验很实用的OpenTiny

本期直播主题是《解决开发者“兼容”难题,OpenTiny技术探索与应用解读》,华为云开源DTSE技术布道师曾令卡在本期直播中与开发者一起详细交流了OpenTiny组件库解决方案的核心优势和设计理念。并通过具体的实操给大家演示OpenTiny如何通过一行命令搭建中后台管理系统,同时也给大家演示了定制化的主题配置系统。

OpenTiny的博客 972

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

OpenTiny Vue 组件库支持 Vue2.7 啦!

之前 OpenTiny 发布了一篇 Vue2 升级 Vue3 的文章。里面提到使用了 ElementUI 的 Vue2 项目,可以通过和 gogocode 快速升级到 Vue3 项目。有朋友评论替换button出错了,并且贴出了报错截图。出现这个报错的原因是当时还不支持 Vue2.7 版本,Vue2.7 是升级 Vue3 的一个过渡版本,支持了 Composition API 写法,相较于 Vue2.6 差异较大。这个问题早在今年4月份就有社区的朋友lipan007这个问题终于将在。

OpenTiny的博客 453

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OpenTiny NEXT 从入门到精通·第 1 篇

OpenTiny NEXT是华为云开源的企业级前端智能开发解决方案,从组件库发展为涵盖AI驱动的完整开发生态。它通过生成式UI和WebMCP协议实现自然语言交互,支持Vue2/3跨框架开发、微前端集成和低代码构建。相比主流组件库,OpenTiny提供更全面的企业级功能,包括智能化能力、跨平台支持和活跃的开源社区。该方案已在华为内部1500+业务中验证,帮助开发者高效构建稳定、美观且智能的前端应用。

程序员【夜珀】的博客 1794

OpenTiny Vue 支持 Vue2.7 啦!

TinyVue 是一个实现了一套代码同时支持Vue2和Vue3的跨端跨框架前端组件库,近期即将发布的 v2.11.0 版本将支持Vue2.7,实现了对Vue框架的全面支持,下一步就是React啦!

kagol的博客 347

华为云开源OpenTiny项目中TinyVue组件库和TinyNG组件库的区别是什么?

TinyVue组件库是基于Vue.js框架开发的一组组件库,而TinyNG组件库是基于Angular框架开发的一组组件库。它们的区别在于所采用的前端框架不同,因而在使用上也有所区别。

ihhhh1的博客 434

参与开源之夏 x OpenTiny 跨端跨框架 UI 组件库贡献,可以赢取奖金!这份《OpenTiny 开源贡献指南》请收好!

本文主要手把手教大家参与 OpenTiny 开源项目。 从阅读项目的 README 文档了解项目是什么,到尝试使用 OpenTiny,再到通过阅读贡献指南文档,将项目启动起来,再到介绍 OpenTiny 项目目录和基本原理,最后是通过带大家分析和解决项目中实际的用户问题,走完整个贡献的流程。 为大家后续参与 OpenTiny 更多贡献做一个指引和入门。

kagol的博客 408

3年历程,这是OpenTiny的逐光之旅!

2025年,前端智能化转型的浪潮来得又快又猛,作为深耕企业级前端开源的一员,OpenTiny始终抱着“让前端开发更高效、更智能”的初心,完成了从组件生态到智能开发平台的大跨越。这一年,我们最亮眼的里程碑,就是OpenTiny NEXT前端智能化解决方案的上线,同时在技术创新、生态搭建、活动联动和影响力扩散上都交出了不错的答卷,和全球开源开发者们一起,朝着前端智能化的方向迈进。一晃三年,OpenTiny已经在开源路上走了三年。

OpenTiny的博客 1159

HDC 精彩回顾|7 月 8 日 OpenTiny 重磅发布

华为云云岭团队前端专家莫春辉作为本次开源项目正式发布的演讲嘉宾,给大家讲解了OpenTiny作为一个企业级组件库解决方案如何给用户解决痛点和困境。以下为项目讲解材料:通过介绍OpenTiny全景图,深入分析开发者面临的市场痛点,给到用户相应的解决方案。针对企业 toB 业务场景,提供跨端、跨框架、跨版本的组件库和开箱即用的管理系统模板,以及覆盖前端开发全流程的 CLI 工具。

OpenTiny的博客 489

OpenTiny——提升前端开发效率的利器

OpenTiny 孵化自华为云和流程IT,经过九年的持续打磨,服务于华为内外部上千个项目,千锤百炼,是一个稳定可靠的组件库。另一方面,技术是需要不断探索的,我们希望携手社区开发者一起探索新技术,不断扩展OpenTiny的边界,让更多开发者收益,也让我们的产品精益求精。当然目前业界组件库有很多,最广为人知的阿里的Ant Design,饿了么的ElementUI,谷歌的Material UI等等,各家有各自的审美和设计~相信你也可能内心有个大大的问号,这个新组件库真的有说的这么好用吗?

LLI025的博客 883

开源产品 OpenTiny 有什么优势?

OpenTiny 孵化自华为云和流程 IT,经过九年的持续打磨,服务于华为内外部上千个项目,千锤百炼,是一个稳定可靠的组件库。另一方面,技术是需要不断探索的,我们希望携手社区开发者一起探索新技术,不断扩展 OpenTiny 的边界,让更多开发者收益,也让我们的产品精益求精。当然目前业界组件库有很多,最广为人知的阿里的 Ant Design,饿了么的 ElementUI,谷歌的 Material UI 等等,各家有各自的审美和设计~相信你也可能内心有个大大的问号,这个新组件库真的有说的这么好用吗?

happyleyouyou的专栏 743

Create Vite App 支持 OpenTiny 啦

大家好,我是 Kagol,个人公众号:前端开源星球。一个月前,写了一篇介绍是基于 esbuild + commander + ejs 模板渲染进行开发脚手架,用于创建 vite4.x typescript5.x vite 开箱即用模板,致力于打造不同框架,多种生态,开箱即用的脚手架。支持各种插件以及不同组件库的可拔插式选择,来帮助你快速从0搭建web应用的脚手架。当时还不支持,现已完美支持 OpenTiny 组件库🎉让我们来体验下吧!

kagol的博客 200
上一篇: OpenTiny 推出开源低代码引擎 TinyEngine 在 KubeCon China 2023 蓄力云原生生态
下一篇: 声音传送门|TinyEngine 低代码引擎直播即将来袭
OpenTiny社区
博客等级 码龄4年 1540粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值