V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  agileago  ›  全部回复第 1 页 / 共 2 页
回复总数  37
1  2  
不能导出图片分享么
不能只用 naiveui 的表格么, 其他还是用 arco-design
https://vxetable.cn/

我觉得你不必切换,因为 naiveui 完全能调配出 arco-design 的风格,naiveui 的主题定制足够强大
226 天前
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
@yetrun 还能找出来致命缺陷么😄
227 天前
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
227 天前
回复了 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
233 天前
回复了 yetrun 创建的主题 Vue.js 准备写一个关于 Vue 的系列文章
另外你说的 vue3 不能声明 slots 的类型致命缺陷,vue3-oop 同样解决

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

[Imgur]( https://i.imgur.com/Nbkohba.png)
234 天前
回复了 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>
}
}
```


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

服务+依赖注入 搞定所有业务逻辑
2023-01-02 23:12:44 +08:00
回复了 daiwenzh5 创建的主题 Vue.js vue3 里面使用 jsx 解构属性,响应式丢失了,怎么处理
忘记什么 ref,reactive ,来用 vue3-oop 体验自然的编程
蹩脚的模板语法模拟 renderProps
2022-12-09 06:05:23 +08:00
回复了 leafyyy 创建的主题 生活 有推荐点好点的洗衣液嘛? 感觉现在洗衣液蓝月亮垄断地位啊
一直用的超能
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2833 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 15:24 · PVG 23:24 · LAX 08:24 · JFK 11:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.