首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我开源了一个基于Vue的组织架构树组件

项目背景 因为最近公司需要做一个OKR,OKR 里面有个对齐视图,是一个数型结构,如下图所示: image.png 就拿我 小智 来说,如果有人对齐我的 KR 就放到我的右边,如果是我对齐了谁的 KR,...就放到我的左边,类似一个上下级的关系,所以这里我用两棵树来表示左边与右边的关系。...分析 既然是树,那么每个节点都应该是相同的组件 节点下面套节点,所以节点组件应该是一个递归组件 整棵树应该有一个全局的状态,用来管理从外部传入的值以及向外部提供的属性和方法。...树的状态 对于树的状态,我用一个 TreeStore 类来表示,该实现方式主要是参考 ElementUI 中的 tree 组件。...string/number — — label-class-name 节点 className 的回调方法,也可以使用字符串为所有的节点设置一个固定的 className Function(node)

1.6K50

写一个通用的幂等组件,我觉得很有必要

我个人认为核心的业务还是适合业务方自己去处理,比如订单支付,会有个支付记录表,一个订单只能被支付一次,通过支付记录表就可以达到幂等的效果。 还有一些不是核心的业务,但是也有幂等的需求。...去之前你得记录下吧,8 月第一周我见的 XXX, 第二周我见的 YYY, 如果第三周又让你去见 XXX, 如果这个时候你不喜欢 XXX, 你会翻出你的小本本看下,这个之前见过了,没必要再见了,不然见了多尴尬啊...加锁是通用的,不通用的部分就是判断这个操作之前有没有操作过,所以我们需要有一个通用的存储来记录所有的操作。 使用简单 提供通用的幂等组件,注入对应的类即可实现幂等,屏蔽加锁,记录判断等逻辑。...我目前做了一个自动生成唯一标识的功能,简单来说就是根据请求的信息进行 MD5,如果 MD5 值没有变化就认为是同一次请求。 需要进行 MD5 的内容有请求 URL 参数,请求体,请求头信息。...我整理了一份很全的学习资料,感兴趣的可以微信搜索「猿天地」,回复关键字 「学习资料」获取我整理好了的 Spring Cloud,Spring Cloud Alibaba,Sharding-JDBC 分库分表

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 替换 LoadedApk 中的类加载器 | 加载 DEX 文件中的 Activity 类并启动成功 )

    | 配置清单文件 | 启动 DEX 文件中的组件 | 执行结果 ) 的代码基础上 , 使用类加载器加载 com.example.dex_demo.MainActivity2 组件前 , 先替换 LoadedApk...中的类加载器 ---- 参考 【Android 逆向】加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程 二、使用反射替换 LoadedApk 中的类加载器流程...LoadedApk 中的 类加载器 ClassLoader // 然后使用替换的类加载器加载 DEX 字节码文件中的 Activity 组件 if (Build.VERSION.SDK_INT...LoadedApk 中的 类加载器 ClassLoader , 然后使用替换的类加载器加载 DEX 字节码文件中的 Activity 组件 ; 完整代码示例 : package com.example.classloader_demo...中的 类加载器 ClassLoader // 然后使用替换的类加载器加载 DEX 字节码文件中的 Activity 组件 if (Build.VERSION.SDK_INT

    1.7K30

    java restsharp_RestSharp 一个.NET(C#)的HTTP辅助类组件「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 互联网上关于.NET(C#)的HTTP相关的辅助类还是比较多的,这里再为大家推荐一个.NET的HTTP辅助类,它叫RestSharp。...RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。...Framework 3.5等 通过NuGet方便引入到任何项目 ( Install-Package restsharp ) 可以自动反序列化XML和JSON 支持自定义的序列化与反序列化 自动检测返回的内容类型...Authenticators等授权验证等 支持异步操作 极易上手并应用到任何项目中 以上是RestSharp的主要特点,通用它你可以很容易地用程序来处理一系列的网络请求(GET, POST, PUT,...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    80330

    【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )

    Activity 类 ) 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件...Activity 实例源码 1、LaunchActivityItem 2、ActivityThread 三、使用 Hook 技术在主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件...frameworks/base/core/java/android/app/ActivityThread.java 三、使用 Hook 技术在主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件...成员 ; 该静态代理类的主要作用是 , 在创建的 Activity 示例类之前 , 使用插件包中的 Activity 组件替换之前在 AMS 调用之前使用的 占坑用的 Activity , 就是要创建...= null) { // 使用 包含插件包组件信息的 Intent , // 替换之前在 Ams 启动之前设置的

    1.3K30

    React 中必会的 10 个概念

    在 React 中,您可以使用 defaultProps 属性为组件属性设置默认值。但是,这仅适用于类组件。...要在这些模板中插入表达式,我们可以使用${表达式}。 ? 模板字符串使这种替换更具可读性。在 React 中使用它们将帮助您动态设置组件属性值或元素属性值。 ?...继承,这不是特定于 JavaScript 的东西,而是面向对象编程中的常见概念。 简而言之,这是将一个类创建为另一个类的子级的能力。...在 React 应用程序中,您还可以使用 ES6 类来定义组件。要定义一个 React 组件类,您需要扩展 React.Component 基类,如下所示: ?...我将 async / await 包含在此列表中是因为在每个前端项目中,我们正在做很多需要异步代码的工作。一个常见的例子是当我们想通过 API 调用获取数据时。

    6.6K30

    如何修复Vue中的 “this is undefined” 问题

    ,我也经常遇到这个问题很多次,接下我们一起来看看如何解决这个问题。...一个可能的原因是混淆了常规函数和箭头函数的用法,如果你遇到这个问题,我猜你用的是箭头函数。如果用常规函数替换箭头函数,它可能会为你修复这个问题。 我们再深入一点,试着理解为什么会这样。...我们通常使用箭头函数有几个原因 更短、更简洁的语法 改善可读性 this 取自父类 在Vue方法中,箭头函数也可以作为匿名函数使用。...等等,我们不是刚发现当我们试图访问 this 时,箭头函数不起作用吗? 这就是区别所在。 当我们在常规函数或简写函数中使用箭头函数时,常规函数将this设置为我们的Vue组件,而箭头函数则不一样。...如果你正在获取一些数据并想在你的组件上设置它,这是你应该做的正确的方式: export default { data() { return { dataFromServer: undefined

    5K20

    探索React Hooks:原来它们是这样诞生的!

    2016:类组件 在JavaScript在ES2015(ES6)中获得类之后,React很快跟进了今天仍然可以使用的类组件。...无状态函数组件 在同一时期,React 团队宣布了一种使用函数而不是类来创建组件的新方法。当时的主要想法是拥有一个仅接受属性并可以返回 JSX 的组件。...下面是一个使用自定义钩子共享数据获取逻辑的示例。你不必完全了解如何使用 useState 和 useEffect ,只需要了解它们为组件执行一些逻辑,我想共享它。...如果你想要一个获取数据的自定义 Hook,推荐来自 React Query 的自定义钩子,名为 useQuery() 。 如今,如果你愿意,你仍然可以使用类。如果你觉得它们更容易使用,那完全取决于你。...但是我注意到(至少在 Twitter 上),历史正在重演。有一整代新的 React 开发者不知道这个背景故事,也不知道我们为什么要有 Hooks。

    1.6K20

    如何对第一个Vue.js组件进行单元测试 (下)

    在处理函数中,我们反复绑定每个binding属性,并在元素上设置一个基于名称和值的数据属性。        现在我们需要注册我们的指令,以使用它。...让我们从前面开始测试:        我们用[data-test-id =“star”]替换了.star选择器,它允许我们在不破坏测试的情况下更改类以用于演示目的。...在将此指令设置为要测试的目标元素之后,您可能想知道是否还应该使用它们来替换我们主动查找的类。...让我们看看第一次测试的断言:        我们应该对具有活动类的元素使用v-test,并在断言中替换选择器吗?好问题。        单元测试都是关于一次测试一件事。...首先,让我们强调一些重要的东西:我们正在测试定义良好的JavaScript函数,而不是UI。        当您查看单个文件组件时,很容易忘记组件编译成JavaScript函数。

    3.3K00

    通过示例了解Vue过渡和动画

    要使代码按我们希望的方式起作用,需要注意以下几点: 绝对定位元素 当Vue在两个元素之间过渡时,有时会同时显示两个元素并进行进去/离开的过渡。...2.如果元素是一样的,则必须向该组件添加一个key属性 如果元素是一样的,Vue 会尝试优化内容,仅替换元素的内容。 根据文档,如果要在多个元素之间进行过渡,最好始终添加 key。...组件 在开发过程中,尝试设计可重用组件是一个很好的习惯。...在第一个示例中,我们只使用了元素生成的默认类名,但是我们可以做的就是将这些值覆盖到我们想要的任何类中,在这种情况下,它将是CSS库中的类名。...已收录,有一线大厂面试完整考点、资料以及我的系列文章。

    1.8K40

    以嵌入式小组件库 NotionPet 为例

    于是,我想在双链笔记之外,寻找一些解决方案。在使用双链笔记软件的时候,同时我也在使用 Notion 类工具进行在线协作。...在使用过程中,我发布了《Notion 优质资源汇总》、《生产力工具 FlowUs 深度评测》以及《强化你的仪表盘:试试 Notion 类工具的国产组件库 NotionPet》。...在使用小组件的过程中,我突然想到,为什么不能在双链笔记中使用这些小组件呢?只要支持嵌入网页的工具,应该都可以使用小组件,而不是仅仅局限于 Notion 类软件。于是,有了这篇文章。...二、创建个性化的小组件,生成小组件链接,再将其粘贴和替换上述语法中的 URL. 如图:在 NotionPet 中复制右上角的小组件链接。...正在快速迭代中,更多好看且强大的小组件会逐步上线。

    1.6K20

    Unity基础教程系列(九)——形状行为(Modular Functionality)

    1.1 抽象行为 像往常一样,创建一个新的ShapeBehavior组件脚本并使其继承自MonoBehaviour。这是我们行为的基类,我们将通过具体行为(例如运动)进行扩展。...Unity在其MonoBehaviour类中使用的是英国拼写习惯,这与美国拼写习惯的其他用法有所不同。我们正在定义自己的行为基础,因此我这里使用美国拼写。 ?...所以也添加抽象的保存和加载方法。 ? 1.2 移动 我们的第一个具体的形状行为组件将是关于简单的线性运动。它的功能和我们现在的移动完全一样,但现在是在一个单独的类中实现。...如果我们在调用这个方法后出现了一个空引用异常,这意味着我们忘记在开关中包含一个行为类型。 ? 将读取移动和旋转数据的旧代码替换为读取行为列表。...相反,我们可以使用静态类。这意味着这些池将无法承受热重载,但也没太大影响。 ? 这一次,我们将使用一个堆栈来跟踪未使用的行为,因此向类中添加一个静态堆栈 字段,并立即对其进行初始化。 ? 什么是栈?

    1.3K40

    从maven依赖定义顺序到Java spi机制,这些你忽略了的细节

    同样的依赖和配置竟然跑出不同的结果! 查原因:我加入的hibernate-validator竟然无效。...经过一系列试探,得出结论:两个依赖的顺序写反了,导致hibernate-validator并没有起作用。那么,到底是为什么呢?...如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。...四、Java spi机制 SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制,常用于创建可扩展、可替换组件的应用程序,是java中模块化插件化的关键...SPI 框架包含3个基本组件: 服务接口 Service Interface 服务接口的实现类,Service Provider 服务加载器 Service Loader 一张图,教你怎么使用Java

    46130

    2021前端面试题及答案_前端开发面试题2021

    大家好,又见面了,我是你们的朋友全栈君。...:获取每个实例的初始化状态 componentWillMount:组件即将被装载、渲染到页面上 render:组件在这里生成虚拟的 DOM 节点 componentDidMount:组件真正在被装载之后...setState 是修改其中的部分状态,相当于 Object.assign,只是覆盖, 不会减少原来的状态 replaceState 是完全替换原来的状态,相当于赋值,将原来的 state 替换为另一个对象...更重要的是,你不能保证在组件挂载之前 Ajax 请求已经完成,如果是这样,也就意味着你将尝试在一个未挂载的组件上调用 setState,这将不起作用。...在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。

    1.3K30

    写给小白的android基础面试笔试题(一)

    答:说实话,这种类型的题目我的内心是崩溃的,这个面太广了,不好下嘴说,我当时就是把四大组件一一介绍过去,我觉得这样能笼统的概括,而且后来我发现面试官并不是想问你四大组件是什么,请接着往下看。...还没等我讲完四大组件,他就开始问广播的用法,以及在什么情况下能用到,我当时回答了两点,一是系统有一些广播有时候需要用到;二是可以替换handler用来作为线程间的通信桥梁。...(2)、res:使用Lint代码分析器,由于Proguard 只会对Java代码起作用,所以使用我们还得结合Lint工具,来帮你找到无用的资源文件。...答:这道题我想说我之前看过郭神写的一篇博客《反编译与混淆技术完全解析》,而且当时我的项目中需要实现一个类似像简书编辑器那种,然后我傻傻的去编译简书的apk,结果当然是一脸的懵逼啦!...好了,希望LZ的面试经历能对你也有所帮助,接下来我会持续更新我的面试和笔试经历,LZ要接着去找工作了,同时也希望此时正在找工作的人不要放弃,如果你也喜欢编程,喜欢Android,那就坚持下去。

    92420

    Web components

    自定义元素:自定义元素定义: 我们可以通过创建一个继承HTMLElement基类或其派生类的类来定义自己的自定义元素。该类代表自定义元素并定义其行为和属性。...以下是如何修改我们的MyCustomElement类以使用模板和插槽的示例:class MyCustomElement extends HTMLElement { constructor() {...(clone); }}customElements.define('my-custom-element', MyCustomElement);通过此代码,我们创建了一个包含组件结构的标签内的内容将替换Shadow DOM中的元素的内容。...尽管越来越多的公司现在正在采用Web components来满足其需求,但仍然需要高质量的案例研究和信息性博文来促进这种转变。我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

    11500

    Navigation问题详解——Fragment创建新的实例

    背景 周末,有位同学在微信公共号后台,给我留言,说看了我之前写两篇文章,谷歌官方组件Navigation你了解了吗?、谷歌官方组件Navigation你会用了吗?...为了说明问题,我录了一个GIF ?...注意如果要实现以上效果我们应该注意一下几个地方: 1.如果我们用Kotlin语言,那么我们在gradle当中引用的地方的类库,需要改成 implementation "android.arch.navigation...包为: import androidx.navigation.fragment.findNavController 3.resource id替换为action id 看过我之前代码的同学,可能会注意到我特意强调...之前有位同学在公共号给我留言,问下了Demo之后,为什么设置 popUpTo/popUpToInclusive不起作用,问题就在这里应该是action Id 代码我已经更新,欢迎star和下载。

    1.9K20

    是的,这里有3种使用Vue 3创建多布局系统的方法

    假设你正在创建一个网页应用,它包括主页、营销页面和应用页面: 希望主页拥有独特的布局 希望您的营销页面有侧边栏或其他任何东西 希望您的应用页面具有常见的元素,如警告消息、错误消息、特定的标题、导航等等...所以,我的主页组件现在看起来像这样: 无需再包装任何东西;所有的事情都在App.vue中处理,围绕的 每当路由改变时的每个页面。...这种方法在大多数使用场景中都有效,但它存在一个问题 布局只有在 route 改变时才会变化。 如果你需要在不改变路由的情况下动态改变布局,那么这种方法将不起作用。...由于我们正在存储一个组件,这是一个包含许多嵌套值的复杂对象,使用 ref 会导致性能问题。 这也是不必要的,因为我们只需要知道整个组件何时发生了变化,而不是嵌套值何时发生了变化。...如前所述,对于共享状态,我们可以使用Vuex或Pinia来做同样的事情,但对于大多数情况来说,这已经足够了。

    1.3K50
    领券