EventBus

【Android】基于WanAndroid开放API实现的文章阅读APP

只谈情不闲聊 提交于 2021-02-14 23:56:58
个人博客: http://www.milovetingting.cn 简介 基于 WanAndroid 开放 API 开发的技术文章阅读App。主要功能包括:首页、体系、项目、公众号、搜索、登录、收藏、夜间模式等。 用到的第三方框架 RxJava RxAndroid Retrofit EventBus ButterKnife Gson Glide LitePal AndroidUtilCode SmartRefreshLayout permissionsdispatcher Banner AgentWeb WaveLoadingView FlowLayout 效果图 首页:展示轮播图、推荐文章列表,列表支持下拉刷新、上拉加载。 体系分类:展示体系的一级、二级分类信息,支持下拉刷新。 二级体系分类:展示具体二级分类下的文章列表,支持下拉刷新、上拉加载。 项目:项目列表,支持下拉刷新、上拉加载。 公众号:公众号列表,支持下拉刷新、上拉加载。 搜索: 搜索结果: 文章内容: 菜单栏:包含用户信息、收藏列表、设置 登录前: 登录: 注册: 登录后: 收藏列表: 设置: 夜间模式 APK下载 项目地址: https://github.com/milovetingting/WanAndroid/tree/master/WanAndroid WanAndroid 为非组件化应用。

vue性能优化

只愿长相守 提交于 2021-02-13 08:34:42
其实性能优化呢是个非常大的话题,只是自己在工作中确实会碰到一下,页面加载慢呢,一部分是逻辑问题,一部分是网络问题,还有就是确实数据太多,dom元素太多了。 1,在网上搜索vue长列表渲染,推荐的方案有Object.freeze() ,后来呢,看到黄轶大神的解答,就是说可以把那些只用于展示的,并且比较长的列表数据,在crated钩子中绑定到this身上,不一定需要写在data里面, 2,在被复用的组件中,通过eventbus发送的消息,需要在beforeDestory钩子中解绑,解绑的方法也比较简单,看例子: <script> methods:{ test(){ this .EventBus.$emit('refresh' ); } } beforeDestory(){ this .EventBus.$off('refresh'); // 取消对这个事件的监听 } </script> 如果不取消,那么这个组件被激活几次,那么事件监听中的回调函数就会执行几次,比如,A,B页面都使用了这个组件,在A,B组件之前切换时,组件中监听的事件会累加,严重影响页面性能,所以这里的取消监听是非常有必要的   当实践到好的方法的时候在过来添加,上面的方法还需要实际验证一下。后面继续补充吧 来源: oschina 链接: https://my.oschina.net/u/4410805/blog

vue数据传递--我有特殊的实现技巧

谁说胖子不能爱 提交于 2021-01-11 08:25:26
最近碰到了比较多的关于vue的eventBus的问题,之前定技术选型的时候也被问到了,vuex和eventBus的使用范围。所以简单的写一下。同时有一种特殊的实现方案。 有这么几种数据传递方式,vuex、props、eventBus和特殊的eventBus。 vuex 不介绍,数据量和复杂度达不到不用它你才会向下看。 props 父子组件传值,官方api,只写个demo。 1.父组件 <son :info="info" @update="updateHandler"/> // data info: 'sendToSon' // methods updateHandler (newVal) { this.info = newVal }    2.子组件 // props props: ['info'] // 向上传值,某个方法中使用 this.$emit('update', 'got') 父向子传值-->props 子向父传值-->子组件绑定事件回调定义在父组件,子组件触发此事件。 因不推荐子组件内直接修改父组件传入的props,需使用自定义事件。 eventBus bus皆为导入的bus实例 // bus const bus = new Vue() // 数据接收组件 // 当前组件接收值则 bus.$on('event1', (val)=>{}) // 数据发出组件 //

EventBus

妖精的绣舞 提交于 2021-01-03 07:48:54
周末看下https://www.cnblogs.com/peida/p/EventBus.html 来源: oschina 链接: https://my.oschina.net/u/2983845/blog/1865181

Solon 特性简集,相较于 Springboot 有什么区别?

旧巷老猫 提交于 2020-12-28 13:53:15
Solon 是一个类似Springboot的微型开发框架,也是一个不基于Servlet的开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验。 Solon 强调:克制 + 简洁 + 开放的原则;力求:更小、更快、更自由的体验。 所谓更小: 内核0.1m,最小Web开发单位0.2m(相比Springboot项目包,小到可以乎略不计了)。 具用户反映,某些项目切换到Solon后,可以缩减到原来10%的包大小。 所谓更快: 本机helloworld测试,启动最快可达0.09s,Qps可达12万之多。可参考:《 helloworld_wrk_test 》。 所谓更自由: 代码操控自由: // 除了注入模式之外,还可以按需手动 // //手动获取配置 String userName = Solon.cfg().get("user.name"); Properties dbcfg = Solon.cfg().getProp("db"); //手动获取容器里的Bean UserService userService = Aop.get(UserService.class); //手动监听http post请求 Solon.global().post("/user/update", x->

Solon 特性简集,相较于 Springboot 有什么区别?

坚强是说给别人听的谎言 提交于 2020-12-28 13:09:38
Solon 是一个类似Springboot的微型开发框架,也是一个不基于Servlet的开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验。 Solon 强调:克制 + 简洁 + 开放的原则;力求:更小、更快、更自由的体验。 所谓更小: 内核0.1m,最小Web开发单位0.2m(相比Springboot项目包,小到可以乎略不计了)。 具用户反映,某些项目切换到Solon后,可以缩减到原来10%的包大小。 所谓更快: 本机helloworld测试,启动最快可达0.09s,Qps可达12万之多。可参考:《 helloworld_wrk_test 》。 所谓更自由: 代码操控自由: // 除了注入模式之外,还可以按需手动 // //手动获取配置 String userName = Solon.cfg().get("user.name"); Properties dbcfg = Solon.cfg().getProp("db"); //手动获取容器里的Bean UserService userService = Aop.get(UserService.class); //手动监听http post请求 Solon.global().post("/user/update", x->

Android EventBus的基本用法(kotlin版)

别等时光非礼了梦想. 提交于 2020-12-16 12:10:15
EventBus https://github.com/greenrobot/EventBus EventBus是一种用于Android的事件发布-订阅总线。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。 接收方 class MainActivity : AppCompatActivity ( ) { override fun onCreate ( savedInstanceState : Bundle ? ) { super . onCreate ( savedInstanceState ) setContentView ( R . layout . activity_main ) EventBus . getDefault ( ) . register ( this ) //注册,重复注册会导致崩溃 MainActivity2 . start ( this ) } override fun onDestroy ( ) { super . onDestroy ( ) EventBus . getDefault ( ) . unregister ( this ) //解绑 } //接收消息 @Subscribe ( threadMode = ThreadMode . MAIN ) fun

VueJs(前端面试题整合)

你。 提交于 2020-12-12 13:16:09
vue和react的区别 React严格上只针对MVC的view层,Vue则是MVVM模式 virtual(虚拟) DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制 组件写法不一样,React推荐的做法是 JSX + inline style,也就是把HTML和CSS全都写进JavaScript了,即'all in js';Vue推荐的做法是webpack+vue-loader的单文件组件格式,即html,css,js写在同一个文件 数据绑定:vue实现了数据的双向绑定,react数据流动是单向的 state对象在react应用中不可变的,需要使用setState方法更新状态;在vue中,state对象不是必须的,数据由data属性在vue对象中管理 redux和vuex的区别 vuex是redux的基础上进行改变,对仓库的管理更加明确 使用mutation来替换redux中的reducer vuex有自动渲染的功能,所以不需要更新 vuex是专门为vue提供的状态管理工具,而redux是一个泛用的状态管理框架 vuex的实现原理 Vuex的状态存储是响应式的,当Vue组件从store中读取状态时

期末作业、课程设计的最优选择:Android商城开源项目

只愿长相守 提交于 2020-12-11 00:12:13
项目说明: 1.完整功能的项目. 2.代码采用基础型代码,比较适合在校大学生风格,没有晦涩、难懂的编程风格. 3. 有数据库. 项目简介: 购物(商城)类app,项目主要分为主页、热卖、分类、购物车、我的五大板块. 该app基本上覆盖市面上商机级商城类app的功能,包括购物车、微信及支付宝支付、热门及历史搜索、登录注册、收货地址管理等. 另外,本项目持续维护中!!!同时可进入微信群,和作者、其他小伙伴一起谈论该项目. 截止目前项目提交记录: 对应的群进行交流学习: 使用的开源技术(蓝色字体含链接): 1. 轮播图 2. 下拉刷新、加载更多 3.Gson解析 4. butterknife 5. 批量处理权限 6. 自定义样式的dialog 7. 三级联动 8. eventBus 9. 沉浸式状态栏 10. greendao 11.ShareSDK 12. okhttpUtils 13. baseAdapter 14. Glide 15. pingpp 16.百度地图定位及Mob天气查询 基本封装与自定义: 1.ToolBar的封装 2.FragmentTabHost的自定义 3.一键清除的EditText 4.购物车的加减控件 5.短信验证倒计时的定时器 6.Glide的封装 7.购物车本地缓存 8.对称加密DESUtil 9.读取Json文件的工具类GetJsonDataUtil

Flutter 组件通信(父子、兄弟)

匆匆过客 提交于 2020-12-01 12:36:29
一,概述     flutter一个重要的特性就是组件化。组件分为两种状态,一种是StatefulWidget有状态组件,一种是StatelessWidget无状态组件。 无状态组件不能更新状态,有状态组件具有类似刷新的机制,可更改状态。   功能模块都可以通过继承两种状态组件实现功能模块封装。组件间通信,一般存在一下两种关系。 父子组件通信 兄弟组件通信        二, 通信实现方式 回调通信 需求“点击子组件,修改父组件的背景颜色与子组件背景颜色一致” 代码实现 //父组件 class ParentWidget extends StatefulWidget { final String title; ParentWidget({Key key,this.title}):super(key:key); @override State<StatefulWidget> createState() { return new ParentWidgetState(); } } class ParentWidgetState extends State<ParentWidget> { Color containerBg = Colors.orange; //回调函数 void changeBackgroundColor(Color newColor){ setState(() {