V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  agileago  ›  全部回复第 1 页 / 共 2 页
回复总数  40
1  2  
@ZGame nextui
感觉没太大新意,没跟得上时代的发展,我觉得新一代的 vue 组件库应该是类似 nextui 那种

1. 使用 tailwind 作为样式方案
2. 完全使用 tsx 书写组件
不错
2023-10-08 18:42:17 +08:00
回复了 751327 创建的主题 分享创造 [我的第一个 app][iOS] 事轴 - 多条时间轴记事 | 支持图片
不能导出图片分享么
2023-09-25 10:50:54 +08:00
回复了 TingLen 创建的主题 Vue.js vue3 出来那么久了,有什么比较推荐的表格组件吗
不能只用 naiveui 的表格么, 其他还是用 arco-design
2023-09-23 13:59:46 +08:00
回复了 TingLen 创建的主题 Vue.js vue3 出来那么久了,有什么比较推荐的表格组件吗
https://vxetable.cn/

我觉得你不必切换,因为 naiveui 完全能调配出 arco-design 的风格,naiveui 的主题定制足够强大
2023-08-15 09:28:43 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
@yetrun 还能找出来致命缺陷么😄
2023-08-14 10:34:06 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
2023-08-14 10:30:33 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
@yetrun 哈哈

1. defaultProps 是 vue 需要的属性声明啊,https://cn.vuejs.org/api/options-state.html#props 这里叫 defaultProps 是因为类组件一般都是这个名字的 https://zh-hans.react.dev/reference/react/Component#static-defaultprops


2. 当然可以, 我这样写是让你一眼能看出来支持泛型 https://imgse.com/i/pPKqifH
2023-08-08 16:51:23 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
另外你说的 vue3 不能声明 slots 的类型致命缺陷,vue3-oop 同样解决

https://s1.ax1x.com/2023/08/08/pPVTA2D.png
2023-08-08 16:11:57 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
vue 本身的形式连外置声明一个属性类型都困难,更别说实现泛型组件了,这么说吧,tsx 比模版强太多了,再加上 ts 官方支持,写起来爽飞天,另外模板现在的黑魔法越来越多, 为了补足模板的功能,你看官方出了多少工具函数, 什么 defineProps, defineEmits ....., 为了 reactive 的结构又出了 toRefs.....等等,现在用模版心智负担太重,而 vue3-oop 让你忘记什么 ref, reactive,就是强调用自然符合直觉的写法来做界面开发
2023-08-07 18:26:49 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
包括你说的泛型组件,很轻易就实现了

[Imgur]( https://i.imgur.com/Nbkohba.png)
2023-08-07 18:16:35 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
跟 vue2 完全没啥关系,我是想达到一种自然的写法,你想想,你写的代码逻辑核心都在处理什么?难道不是处理变量和该变变量的函数么? 把变量和函数组织在一起的不就是类么?

下面这是个简单逻辑

```
class Count {
count = 1
add = () => this.count++
}
```

那对于界面开发,需要有渲染函数的存在, 另外得知道他是一个 vue 组件, 那就演变成下面这样子的设计

```
class Count extends VueComponent {
count = 1
add = () => this.count++

render() {
return <div onClick={this.add}>{this.count}</div>
}
}
```

那假如数据变了, 我要通知框架我要刷新了,那我怎么告诉框架呢?就变成下面的设计了,给这个变量标记一下是可变变量,变化的时候框架会自动更新



```
class Count extends VueComponent {
@Mut() count = 1
add = () => this.count++

render() {
return <div onClick={this.add}>{this.count}</div>
}
}
```


这个时候随着组件逻辑的增加,导致组件代码激增,你想把代码拆分出去(类似 hook), 更好维护, 那代码就演变成下面这样子


```
// 服务 类似 useHooks
class CountService extends VueService {
@Mut() count = 1
add = () => this.count++
}

class Count extends VueComponent {
countService = new CountService()

render() {
const { countService } = this
return <div onClick={countService.add}>{countService.count}</div>
}
}
```

但是你拆分逻辑不可能只有这一个 service, 就像你拆分成 useHook 一样, 当这些服务越来越多,并且之间会相互依赖,比如, B 依赖 A ,C 依赖 B ,C 又依赖 A , 那你得代码只能这样写

```
const A = useHookA()
const B = useHookB(A)
const C = useHookC(B, A)
```

这个时候加入某个服务的依赖调整了,你要去调整这一坨必须按顺序初始化的代码,是非常烦人的, 这个时候依赖注入就出场收拾残局了

```
class A extends VueService {
}

@Injectable()
class B extends VueService {
constructor(private a: A) {
super()
}
}

@Injectable()
class C extends VueService {
constructor(private a: A, private b: B) {
super()
}
}


@Component()
class Count extends VueComponent {
constructor(private a: A, private b: B, private c: C) {
super()
}

render() {
const { a, b, c } = this
return <div onClick={countService.add}>{countService.count}</div>
}
}
```


代码是一步一步演化的
2023-08-07 17:41:02 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
啊,真的假的,怎么会觉得复杂呢?
2023-08-07 13:53:01 +08:00
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
大兄弟,试试 vue3-oop https://github.com/agileago/vue3-oop, 遇到的问题都不是问题
2023-06-01 11:01:11 +08:00
回复了 ZGeek 创建的主题 程序员 从学校毕业以来,你感觉到最后悔的事情是什么
后悔的太多了,最后悔的事是人生大事仓促决定,应该多思考再做决定
2023-05-23 18:14:22 +08:00
回复了 webfansplz 创建的主题 Vue.js 写一个 Vue DevTools,让开发体验飞一会儿
https://github.com/agileago/fe-template 能适配一下这个模板么
2023-05-23 18:13:15 +08:00
回复了 webfansplz 创建的主题 Vue.js 写一个 Vue DevTools,让开发体验飞一会儿
Support for the experimental syntax 'decorators' isn't currently enabled
2023-05-09 17:38:14 +08:00
回复了 tanran 创建的主题 程序员 macOS 怎样快速切换到另一个应用?
2023-05-06 17:17:43 +08:00
回复了 Hamm 创建的主题 Vue.js Vue3+TypeScript 的另一种另类的打开方式
大兄弟,搞得太复杂,前端就不要用继承了,你想用面向对象的话可以试试我的 vue3-oop https://github.com/agileago/vue3-oop

服务+依赖注入 搞定所有业务逻辑
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2762 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 14:48 · PVG 22:48 · LAX 06:48 · JFK 09:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.