Webix实践(一)

一:webix是什么?

Webix是一款白俄罗斯的原生组件库,支持TS、requireJS、React、Vue、Angular

二:为什么使用webix?

除了收费,以及新手会花一定时间学习熟悉之外,其所带来的优势有:

1、类原生写法,配置式,前后端能一起写
2、低css,自带ui能满足业务的情况下,能减少很多工作量
3、微前端简单且灵活,还能包裹react、vue等其他框架项目打包

三:构架webix项目

创建vite+react模板
1、$ yarn create vite 选择react-ts,之后正常创建项目
2、依赖注入
js 复制代码
"devDependencies": {
    "@xbs/jet-helpers": "1.1.2",
    "eslint": "^8.41.0",
    "vite": "^4.3.8"
  },
  "dependencies": {
    "@types/node": "^20.3.2",
    "@vitest/ui": "^0.32.2",
    "@xbs/webix-pro": "^10.1.2",
    "jet-hotkey": "^1.0.0",
    "jet-restate": "^1.0.1",
    "typescript": "^5.0.4",
    "vite-plugin-dts": "^3.0.0-beta.3",
    "vitest": "^0.32.2",
    "webix-jet": "^3.0.1"
  },

核心库:webix-jet(开源)、@xbs/webix-pro(收费)。 可以试用,代码里面的使用

3、hello world

index.html内部

js 复制代码
<link rel="stylesheet" type="text/css" href="//cdn.webix.com/edge/webix.css">
<link rel="stylesheet" href="./src/assets/statics/mdi/font/css/materialdesignicons.min.css" type="text/css" charset="utf-8" />

<script type="text/javascript" src="http://192.168.0.187:82/static/js/webix.js"></script>
<script type="text/javascript" src="http://192.168.0.187:82/static/js/jet.umd.js" ></script>

<script type="module" src="/src/MyJetApp.ts"></script>

webix.ready(function(){
    webix.ui({template:"hello world"})    
})

分别是框架css,图标css,框架js,架构的js,项目内部业务js,和UI的暴露方法。

此时在进入MyJetApp业务代码之外,我们就渲染出了组件,要编写模块化的复杂组件,则在入口文件内书写

4、模块化组件
  1. webix-jet
js 复制代码
import { JetApp, EmptyRouter } from "webix-jet";
import ProcessApp from './Process/ProcessApp'
export default class MyApp extends JetApp{
	constructor(config:any){
		const defaults = {
			router 	: EmptyRouter,
			debug 	: true,
			start 	: "process",
			views:{
				"process": ProcessApp,
			}
		};
		super({ ...defaults, ...config });
	}
}
webix.protoUI({ name: "myProcessApp", app: MyApp }, webix.ui.jetapp);

创建jetApp,并暴露出来(webix.protoU),将打包的入口定到该页面可打包出去

js 复制代码
 build: {
    outDir: "dist",
    lib: {
      entry: resolve(__dirname, "./src/MyJetApp.ts"),

这样在其他项目或者这个页面,加载了打包的js,都可以webix.ui({template:"myProcessApp"})来使用加载。

接下来就是进入jetView页面,在里面写ui

js 复制代码
    return {
            rows: [
                {
                    cols: [
                      {
                        view: "form",
                        scroll: false,
                        localId: "myForm",
                        elements: [
                          {
                            type: "wide",
                            css: {
                              background: "white !important",
                            },
                            cols: [
                              {
                                view: "text",
                                name: "jh",
                                label: "井号:",
                                width: 250,
                              },
                              {
                                view: "button",
                                value: "查询",
                                width: 100,
                                click: () => {
                                  this.onSearch();
                                },
                                css: "webix_primary",
                              },
                              {},
                            ],
                          },
                        ],
                      },
                    ],
                },
                {
                    $subview: new BaseTableView(self.app, {...configs}),
                    name: 'my_table'
                }
            ],
        
         
        }

页面风格:

这是config内部return的对象,就是需要展示的UI,subview是子组件,可以进行嵌套,更详细的参考api文档学习

总结

以上就是webix从无到有创建项目使用的过程,涉及到的api可以在开始的地址里面去学习,可以作为框架预研的初步了解。

相关推荐
threelab几秒前
Three.js 初中数学函数可视化 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
爱学习的程序媛4 分钟前
浏览器工作原理全景解析
前端·浏览器·web
我是若尘1 小时前
用 Git Worktree 同时开多个需求,不用来回 stash
前端
IT_陈寒2 小时前
Vue的v-for为什么不加key也能工作?我差点翻车
前端·人工智能·后端
小碗羊肉2 小时前
【JavaWeb | 第十二篇】项目实战——登录功能
java·前端·数据库
一个处女座的程序猿O(∩_∩)O2 小时前
如何保持nginx配置与前端打包dist的路径保持一致、解决页面刷新白屏以及页面跳转问题
运维·前端·nginx
十有八七3 小时前
AI 开发,本质是一场文档的生命周期管理
前端·人工智能
Hyyy3 小时前
普通前端自救记录——第0周
前端
前端若水3 小时前
在 Vue 2 与 Vue 3 中使用 markdown-it-vue 渲染 Markdown 和数学公式
前端·javascript·vue.js
之歆3 小时前
DAY_10 JavaScript 深度解析:原型链 · 引用类型 · 内置对象 · 数组方法全攻略(下)
开发语言·前端·javascript·ecmascript