开箱即用的渐进式前端开发框架 dagger.js

2022-06-26 09:31:09 +08:00
 dagger8224

向大家推荐一个轻量完备的描述式开源前端框架dagger.js

与 React/Vue 等主流框架相比,dagger.js 提供了更加简单易用的代码组织方式:指令是业务代码的唯一调用入口(指令中可以使用作用域和模块回调参数)。 使用 dagger.js ,您将不再需要:

构建和包管理工具依赖

dagger.js 工作在浏览器运行时环境当中,无需编译构建过程。通过 script 标签引入框架脚本即可轻松完成应用程序创建。dagger.js 实现了一个运行时模块管理器,按需动态加载解析模块。为您的应用做极限瘦身。demo

运行时第三方核心代码依赖

dagger.js 内置了基于 hash 的路由管理逻辑。您无需为开发单页应用引入额外的路由管理类库。demo

状态管理

dagger.js 倡导数据即状态的技术理念。有别于 React/Vue 单向数据流模型 state(data)/prop 的区分定义,在 dagger.js 中,数据作用域独立于页面组件定义,并具有全域视图响应性。指令作为数据的消费者,可以自由读写其声明位置上可见的作用域字段,您无需再为组件间数据状态同步而劳心费神。demo

api 调用

dagger.js 是去组件化的( componentless ),并非基于传统的 MVVM 设计模式实现。对于使用者来说,数据( Model )通过指令声明方式直接与上下文视图( View )建立动态关联。在大多数场景下您无需调用任何 api 即可完成业务开发工作。demo

更多介绍请参见官方文档

Talk is cheap, let's see the code😄:

empty entry
Hello dagger
scope demo animation
communication between isolate $scope
lifeCycle directives
html directive
add tags
to do list
Tic Tac Toe
module
router
router view toggle each

欢迎大家体验试用 dagger.js ,提出宝贵意见和建议。您的支持和帮助是对我莫大的鼓励!!

2448 次点击
所在节点    前端开发
14 条回复
wzw
2022-06-26 14:26:11 +08:00
是不是适合后端做点小活
dagger8224
2022-06-26 15:15:09 +08:00
@wzw 您好,dagger.js 对初接触者非常友好,有模板语法和 js 基础的话短时间内就能上手开发了。欢迎加入 QQ 讨论群:753706931 ,附言 dagger 即可:)。
liushuigs
2022-06-26 17:28:47 +08:00
看到了区别,没看到优势呀。适用于什么应用场景呢?
dagger8224
2022-06-26 17:51:45 +08:00
@liushuigs 开发者心智负担更小,上手容易,项目没有打包构建过程,线上代码量低,轻量级项目可以快速开发完成
liushuigs
2022-06-26 18:16:43 +08:00
无需编译,在一起轻量级的场景下,确实是有用处的。可以考虑再丰富一下示例。我看你是在用 Codepen ,也欢迎试用一下我的产品:RunJS ( https://runjs.qingting.work ),和你这个无需编译、开箱即用的理念非常相似。
dagger8224
2022-06-26 18:30:47 +08:00
@liushuigs 赞,刚刚在 RunJS 上试用了一下,使用起来很便捷: https://runjs.qingting.work/#/projects/c01586e50b604891
有个问题,codepen 可以通过 url 单独访问 js/css 文件,所以比较适合演示 dagger 的模块配置声明,请问在 RunJS 中也有类似的用法吗?
liushuigs
2022-06-26 18:41:10 +08:00
@dagger8224 还没有呢,正在开发静态资源托管服务,不知道是不是你说的功能。
dagger8224
2022-06-26 18:46:05 +08:00
@liushuigs 我说的不是静态资源托管。比如说我创建了一个 id=xxx 的 demo ,那么可以单独通过 codepen/xxx.js 访问这个 demo 的 js 部分内容,也可以通过相同方式单独访问 html 和 css 。看 RunJS 的 url 是基于 hash 的,试了下貌似没有类似的功能哈
liushuigs
2022-06-26 18:48:03 +08:00
哦,明白了。我考虑下。谢谢
ClarkAbe
2022-06-26 21:59:41 +08:00
感觉方法好多好乱啊......不如 alpine.js 那样简单明了
dagger8224
2022-06-26 22:34:45 +08:00
@ClarkAbe 您好,感谢您的评论。dagger.js 中并没有设计需要常规调用的 api 方法,您说的是指令吗? demo 中的指令表达式写成了内联的,如果将表达式方法都放在 module 下定义 html 会看起来精简很多,可以参考: https://codepen.io/dagger8224/pen/ZErjzwm

至于指令数量,看了下 alpine 当前版本的文档,提供了 15 个指令 attributes ,6 个 properties 和 2 个方法,这与 dagger.js 在预定义指令的数目上是相当的。根据我的实际开发经验来看,dagger.js 常用的控制指令只有 10 个左右(基本都可以在 vue/alpine 中找到对应的指令),文档中介绍的部分指令,比如$file ,$result 等等,是针对特殊场景(本地文件读取)设计的,普通业务场景下使用频度较低。欢迎您继续体验 dagger.js ,提出更多意见和建议。感谢!
hoshea
2022-07-10 23:00:25 +08:00
vue 和 react 创造的语法太多了,都是方言。。。前端越来越卷了
Lenic
2022-07-14 15:16:47 +08:00
看语法和 angular 很像啊
dagger8224
2022-07-14 22:42:39 +08:00
@Lenic 指令定义和 angular/vue 确实有很多类似的地方。不同之处在于,dagger 是一个基于 html 的纯描述式框架,也就是说只有指令声明而无需进行 api 调用,从开发者的角度来说心智负担会低很多。可以在 https://codepen.io/dagger8224/pens 中查看更多示例。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/862239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX