Sample project based on the new Android Component Architecture
Lifecycle, LiveData, MVVM, ViewModels, DataBinding, Dagger, Retrofit
https://developer.android.com/topic/libraries/architecture/guide.html
LiveDatas works like RxJava's Observables,they will notify the observer when the data is Available
@Override
public LiveData<User> getUser(String userName){
final MutableLiveData<User> liveData = new MutableLiveData<>();
githubAPI.user(userName).enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if(response.isSuccessful()) {
liveData.setValue(response.body());
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
}
});
return liveData;
}
Use Support Fragment and AppCompatActivity to be attached to the application's state
public class MainFragment extends Fragment {
MainFragment.java
reposAdapter = new ReposAdapter();
viewDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
viewDataBinding.recyclerView.setAdapter(reposAdapter);
AppComponent.from(getContext()).inject(this);
//inject the viewmodel responding to User
//inject the viewmodel responding to List<Repo>
//fetch the user from the datasource
userViewModel.getUser("florent37")
.observe(this, new Observer<User>() {
@Override
public void onChanged(@Nullable User user) {
viewDataBinding.setUser(user);
}
});
//fetch the repos from the datasource
reposListViewModel.getRepos("florent37")
.observe(this, new Observer<List<Repo>>() {
@Override
public void onChanged(@Nullable List<Repo> repos) {
//when available, send it to the recyclerview
reposAdapter.setRepos(repos);
}
});
public class UserViewModel extends ViewModel {
private final GithubRepository githubRepository;
@Inject
public UserViewModel(GithubRepository githubRepository) {
this.githubRepository = githubRepository;
}
public LiveData<User> getUser(String userName) {
//userLiveData will be notified when the user is fetched
return githubRepository.getUser(userName);
}
}
Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/
修改本地hosts文件 用编辑工具打开 windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hosts mac/linux系统的hosts文件的位置如下:/etc/hosts 增加http://github.global.ssl.fastly.net和http://github.com的映射 获取Github相关网站的ip 访问https:
配置好的host地址: 手动自己找是比较繁琐的,这里分享一个代码,自动生成Hosts 某大佬分享的仓库: https://github.com/521xueweihan/GitHub520 自己手动配置 通过下面网址查询最新的IP地址: https://github.com.ipaddress.com https://www.ipaddress.com 然后配置到host中 202103 IP地址
Vue-Video-Player video.jsplayer component for Vue. 适用于 Vue 的video.js播放器组件。 Example Install CDN Vue.use(window.VueVideoPlayer) NPM npm install vue-video-player --save Mount mount with global import Vue
JavaSpecial - GitHub - 基础技术扩展 // 博客中的代码大部分会收录我的这个项目中,有更新 // Github 地址如下,记得star或者fork https://github.com/FrankZuozuo/JavaSpecial // 喜欢的可以关注此博客
我是从github网站上搜索到的,这个组件不错 web页面采用VUE写的一个上传文件的组件,利用了html5的特性, 一、Html5是可以批量选择本地文件的 二、html5也可以选择文件夹进行上传的。 三、html5还可以把大文件切版上传。 四、html5支持拖拽文件 vue-upload-component 就是利用了html5的特性,然后用vue封装了这样的一个组件。 该组件的特点是,支持拖拽
此绑定用于将组件插入DOM元素并可选地传递参数。 这种绑定可以通过以下两种方式实现 - Shorthand Syntax Full syntax 速记语法 在此方法中,仅指定组件名称而不指定任何参数。 Syntax <div data-bind = 'component: "component-name"'></div> 传递的参数值可以是可观察的。 因此,每当可观察的更改时,将丢弃旧的组件实例
介绍 (Introduction) 类Component是AWT的非菜单用户界面控件的抽象基类。 Component表示具有图形表示的对象。 类声明 以下是java.awt.Component类的声明: public abstract class Component extends Object implements ImageObserver, MenuContainer, S
介绍 (Introduction) 类Component是AWT的非菜单用户界面控件的抽象基类。 Component表示具有图形表示的对象。 Class 声明 (Class Declaration) 以下是java.awt.Component类的声明 - public abstract class Component extends Object implements Image
Component 是一个对客户端 JavaScript 包进行管理的工具,用于更好的构建 Web 应用。 特点: 编写模块化 commonjs 组件 编写包含样式、图片、脚本等内容的组件 无需注册表发布或者帐号,使用 github 资料库 可通过 component-YOURCOMAND git 风格来扩展子命令 组件骨架创建的命令 从命令或者 ./component.json 中安装依赖 av
Props: is - string | ComponentDefinition | ComponentConstructor inline-template - boolean 用法: 渲染一个“元组件”为动态组件。依 is 的值,来决定哪个组件被渲染。 Vue.config.optionMergeStrategies._my_option = function (parent, child,
组件要求是不涉及具体业务的逻辑、粒度合理的单元。 一般来讲,组件分为项目公共组件、全局组件和页面级别组件三类。 公共组件:通过 npm 维护,项目使用package.json引入 全局组件:放到项目的src/components/,主要是全局性的,或通用性很强的组件,具备良好的封装性 页面级别组件:放在页面的pages/*/components下面维护,仅限本页面内使用 注意: 百度公司内部更加详