EventBus

Vue 3.0 升级指南

拥有回忆 提交于 2020-11-29 10:21:45
本文由葡萄城技术团队原创并首发 转载请注明出处: 葡萄城官网 ,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 2020年9月18日Vue 3.0正式发布,距离2016年10月1日Vue 2.0发布已经过去了4年。不知道发布日期的选择是否是作者尤大有意为之,在这四年间,Vue作为个人项目取得了巨大成功,github上的 star数迅速超过10W,成为了三大前端流行框架之一,而在国内它更是作为前端初学者入门的首选占据着霸主地位。 众所周知,软件开发过程里的重构就像是凤凰浴火,浴火直至永生。2018年2月尤大就有了重构Vue,并于同年九月建立了原型的同时也创建了vue-next的repo,而后正式宣布Vue 3.0项目的启动。随后确定了早期实现的方式(class, TypeScript, hooks, time slicing)以及建立了RFC(Request for Comments,征求意见)流程。 在Composition API 确定之前,团队经历了Class API 和 Function API的讨论,功能的回退。团队始终希望保持Vue平缓的学习曲线,以及与用户一起成长的态度,Vue 3.0开发并不激进。在2019年8月确定了 Composition API RFC,随后关于3.0周边的开发也加快了步伐,并与2020年1月2日发布了alpha版本

阿里工作十年的Android架构师,总结出2020最新阿里、腾讯、字节、京东等一线大厂高频面试真题合集,以及从业心得分享

不想你离开。 提交于 2020-11-09 12:46:46
前言: 本文资料是由阿里工作十年架构师提供,属于纯干货篇,总结了最新2020整理收集的一些面试题(都整理成文档,附答案), 涵盖了阿里巴巴、腾讯、字节跳动、京东、华为等大厂的Android面试真题,和资深架构师学习路线以及Android架构文档。 不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行业的发展方向标杆,很多公司的面试官同样会研究大厂的面试题。也会对你的架构师之路带来帮助,文中更是有详细的学习规划图,给你带来不一样的阅读感。 干货献上: 第一部分:(Android中高级篇) 1.Android基础: 1.什么是Activity? 2.请描述一下Activity 生命周期 3.常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activity 生命周期 4.如何保存Activity的状态或者(Activiy 重启怎么保存数据?) 5.两个Activity之间跳转时必然会执行的是哪几个方法? 6.横竖屏切换时Activity的生命周期(★★★★) 7.如何将一个Activity设置成窗口的样式 8.如何退出Activity?如何安全退出已调用多个Activity的Application? 9.Activity的四种启动模式

Vue 超清晰思维导图,带你详细梳理知识点

◇◆丶佛笑我妖孽 提交于 2020-10-29 11:21:43
点击上方“ 逆锋起笔 ”, 公众号回复 PDF 领取大佬们推荐的学习资料 Vue思维导图目录 MVC 与 MVVM 的区别 Vue 基本代码结构 Vue 指令 Vue 组件 class 和 style 动态绑定 computed 计算属性 EventBus filter 过滤器方法 Vue 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。( Vue 有配套的第三方类库,可以整合起来做大型项目的开发) 0.MVC 与MVVM的区别 MVC 是后端的分层开发概念; MVVM 是前端视图层的概念,主要关注于 视图层分离 。 MVVM 把前端的视图层分为了三部分: Model , View , VM ViewModel 1.Vue基本代码结构 const vm = new Vue({ el : '#app' , //所有的挂载元素会被 Vue 生成的 DOM 替换 data:{ // this->window }, methods:{ // this->vm}, //注意,不应该使用箭头函数来定义 method 函数 ,this将不再指向vm实例 props:{} , // 可以是数组或对象类型,用于接收来自父组件的数据 //对象允许配置高级选项,如类型检测、自定义验证和设置默认值 watch:{ // this->vm}, computed:{},

Vue 超清晰思维导图(7张),详细知识点梳理!

|▌冷眼眸甩不掉的悲伤 提交于 2020-10-29 11:03:52
△ 是 新朋友 吗?记得先点 web前端学习圈 关注我哦~ Vue思维导图目录 MVC 与 MVVM 的区别 Vue 基本代码结构 Vue 指令 Vue 组件 class 和 style 动态绑定 computed 计算属性 EventBus filter 过滤器方法 Vue 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。( Vue 有配套的第三方类库,可以整合起来做大型项目的开发) 0.MVC 与MVVM的区别 MVC 是后端的分层开发概念; MVVM 是前端视图层的概念,主要关注于 视图层分离 。 MVVM 把前端的视图层分为了三部分: Model , View , VM ViewModel 1.Vue基本代码结构 const vm = new Vue({ el : '#app' , //所有的挂载元素会被 Vue 生成的 DOM 替换 data:{ // this->window }, methods:{ // this->vm}, //注意,不应该使用箭头函数来定义 method 函数 ,this将不再指向vm实例 props:{} , // 可以是数组或对象类型,用于接收来自父组件的数据 //对象允许配置高级选项,如类型检测、自定义验证和设置默认值 watch:{ // this->vm}, computed:{}, render

GITHUB readme基本语法

流过昼夜 提交于 2020-10-28 10:09:33
一、标题写法: 第一种方法: 1、在文本下面加上 等于号 = ,那么上方的文本就变成了大标题。等于号的个数无限制,但一定要大于0个哦。。 2、在文本下面加上 下划线 - ,那么上方的文本就变成了中标题,同样的 下划线个数无限制。 3、要想输入=号,上面有文本而不让其转化为大标题,则需要在两者之间加一个空行。 另一种方法:(推荐这种方法;注意中间需要有一个空格) 关于标题还有等级表示法,分为六个等级,显示的文本大小依次减小。不同等级之间是以井号 # 的个数来标识的。一级标题有一个 #,二级标题有两个# ,以此类推。 例如: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 二、编辑基本语法 1、字体格式强调 我们可以使用下面的方式给我们的文本添加强调的效果 *强调* (示例:斜体) _强调_ (示例:斜体) **加重强调** (示例:粗体) __加重强调__ (示例:粗体) ***特别强调*** (示例:粗斜体) ___特别强调___ (示例:粗斜体) 2、代码 `` 3、代码块高亮 ``` @Override protected void onDestroy() { EventBus.getDefault().unregister(this); super.onDestroy(); } ``` 4、表格

解析Android 8.0中SystemUI Recents的task是如何启动的

↘锁芯ラ 提交于 2020-10-18 03:54:18
前言 最近任务需求,特殊模式下任务管理界面 不能打开某个APK 任务分析 任务管理界面下单个task的onClick或者onTouch 首先找到Recents 源码 位于systemui 中 这里我们直接打开RecentsActivity.java 文件 在RecentsActivity 的oncreate中发现setContentView为recents资源文件 这里我们看到代码及注释,说明是一个自定义view - RecentsView 我们可以看到RecentsView是继承 FrameLayout的一个自定义View RecentsView 中 有三个view 一个TaskStackView 两个Textview public RecentsView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); setWillNotDraw(false); SystemServicesProxy ssp = Recents.getSystemServices(); mTransitionHelper = new RecentsTransitionHelper(getContext());

Vue3教程,抢先学习

谁说胖子不能爱 提交于 2020-10-14 13:55:27
Vue 3尚未正式发布,但是维护者已经发布了Beta版本,供我们的参与者尝试并提供反馈。 如果你想知道Vue 3的主要功能和主要变化是什么,那么我将在这篇文章中重点介绍一下,告诉你使用Vue 3 beta 9创建一个简单的应用程序。 我将介绍尽可能多的新内容,包括fragments,teleport,Composition API以及其他一些晦涩的更改。我将尽力解释该功能或更改的原理。 Vue3相关文章: Vue3 Composition API如何替换Vue Mixins Vue3 Composition API中的提取和重用逻辑 如何在Vue2与Vue3中构建相同的组件 Vue3中的Vue Router初探 我们将建立什么 我们将构建一个带有模式窗口功能的简单应用。我之所以选择它,是因为它可以方便地展示Vue 3的许多变化。 这是该应用在打开和关闭状态下的外观,因此你可以在脑海中描绘出我们正在做什么: Vue 3安装和setup 与其直接安装Vue 3,不如克隆一个项目 vue-next-webpack-preview ,这将为我们提供一个包括Vue 3在内的最小的Webpack设置。 $ git clone https://github.com/vuejs/vue-next-webpack-preview.git vue3-experiment $ cd vue3

基于rabbitmq的事件总线

房东的猫 提交于 2020-10-03 13:33:01
在这个微服务火热的时代,如果不懂一点微服务相关的技术,想吹下牛都没有法子。于是有必要了解学习一下。所以我最近看了下微服务相关的知识。 微服务所涉及的知识是很广的,我这里只是讲一下事件总线,当然,有现成很棒的框架如CAP,但是我这里只是为了去体验去更深入的了解事件总线,去了解它的工作流程,所以我自己写了一个基于RabbitMQ的事件总线。 1,运行rabbitmq; 2,创建解决方案,模拟分布式如下图(我这里之前学下了一下微服务的网关,所以会有Gateway,所以要运行3个程序,并且运行Consul做服务发现): 3,实现api1的发布功能: 1,创建IEventBus作为抽象接口,实际上你可以用多个MQ来实现它,我这里只是使用RabbitMQ,所以建一个EventBusRabbitMQ来实现接口 public interface IEventBus { } public class EventBusRabbitMQ : IEventBus { } 2,然后新建一个类,用来实现事件总线的DI注入: serviceDescriptors.AddTransient<IEventBus, EventBusRabbitMQ>(); 3,发布消息,为了能够让不同的服务都这个消息类型,并且可以使其作为参数传递,所以我们需要一个基类作为消息的总线:EventData

反杀套路!阿里独家的《Android 开发相关源码精编解析》王者晋级之路,跟弯路说再见!

末鹿安然 提交于 2020-09-23 16:52:15
一、前言 Android开发人员都知道,阅读源码是非常好的学习方式,在我们日常工作中或多或少都会接触一些开源代码,比如说最常用的MMKV、ARouter、AsyncTask,这些源码的普及与应用程度远远超过我们的想象,正因为很多人使用,也在推动着源码不断地完善。 这些优秀的源码中有着多年积淀下来的精华,这些精华是非常值得我们学习的,不管我们当前是什么水平,通过反复阅读源码,能力都会有所提升,小到对源码所提供的功能上的使用更加熟练,大到使我们的程序设计更加完美优秀。 但是,纵观我们身边的人,能够做到通读源码的真的是少之又少,究其原因,不外乎以下几点。 1.阅读源码绝对算得上是一件费时费力的工作,需要读者耗费大量的时间去完成。 而作为开发人员,毕竟精力有限,实在没办法拿出太多的时间放在源码的阅读上。 2.源码的复杂性。 任何一款源码经历了多年的发展与提炼,其复杂程度可想而知。当我们阅读源码的时候,大家都知道需要通过工具来跟踪代码的运行,进而去分析程序。但是,当代码过于复杂,环环相扣绕来绕去的时候,跟进了几十个甚至几百个函数后,这时我们已经不知道自己所处的位置了,不得不再重来,但是一次又一次地,最终发现自己根本无法驾驭它,不得不放弃。 3.有些源码发展多年, 会遇到各种各样的问题,并对问题进行了解决,而其中有些问题对于我们来说甚至可以用莫名其妙来修饰,有时候根本想不出会在什么情况下发生

Java的反射基础与常用方法

蓝咒 提交于 2020-08-19 16:20:14
一、什么是java反射 java的反射机制是指在运行状态中,对于任意的一个类,都能获取到这个类的属性和方法,无论是private还是public。对于任意的一个对象,都能调用到它的任意一个方法和属性,无论是private还是public。这种动态获取类的信息和动态调用对象的方法,我们叫做java的反射机制。当然这种机制如果自己使用不当,在一定程度上破坏了java面向对象的封装性。 二、java反射实例和用法 下面有个person的bean对象,我们就用这个简单的例子来学习,要想使用反射,首先得获取对应类的class对象。 package com.chendsir.exercisejava; public class Person { private int id; private String name; public String age; public Person(String age) { this.age = age; } public int getId() { return id; } public String getName() { return name; } public String getAge() { return age; } } (1) :获取class对象。 我们给这个例子加一个man函数