理解 History
History 记录与操作是 CdList 与其他列表应用的最大区别,通过合理的配置其列表系统可以完全适用于用户端的各种场景
每个插件可以单独设置是否记录 history 改变
前进
,后退
CdList 系统帮开发者已经处理好 history 的变化,以及各个插件的状态展示,甚至数据的请求也是自动完成通过特定的 url 进入 CdList 系统,插件会自动设置自己状态,例如:
页面的 url 为:http://{paht}/?search=北京&page=2
系统会自动填充
北京
到搜索 input 中,并且设置当前页码为2
每个插件会相互制约(也可以通过配置消除这种制约关系),并改变 history url,例如
当前状态为第二页:http://{path}/?search=北京&page=2
用户改变了搜索条件
北京
为上海
此时的 url 为:http://{path}/?search=上海&page=0
插件的制约关系
每个插件都会有一个默认的配置项 option.resetList
, 代表当自己发生变化时,需要重置的插件列表
对于 Search
插件他的 resetList
为:
resetList: ['pagination', 'filter', 'sort']
表示当搜索内容变化后,pagination
, filter
, sort
这三个插件都会被重置,同时他们三个对应的 url param 也会被重置
当然开发者也可以改变这种制约关系:
new CdList.addons.Search({
...
resetList: ['pagination']
...
})
现在只有 pagination
分页插件会被重置
自定义插件如何改变 history
cdList.getHistoryValue
cdList.setHistory
cdList.removeHistory
用以上三个函数开发者可以自行控制 url,具体使用参见CdList Api
自定义插件如何重置默认插件
自定义重置事件,在开发自定义插件时很重要,通过触发以下事件可以立即重置一个插件:
cdList.trigger('pagination.reset');