IONIC beta.14 版本变更一览
由网友(58758323)提供
重构
视图缓存
- 之前用户一旦在应用程序中执行导航动作,每个退出的视图元素和scope都会被销毁.如果相同的视图再次被访问,应用程序会重新生成元素.现在,视图可以被缓存以提高性能.
- 现在,当一个视图退出之后,元素将被遗留在DOM中,它的scope在这段时间内会被断开.当导航至一个已经被缓存的视图中,它的scope会被重新链接,并且其遗留在DOM中的元素会被重新激活到当前视图.
- 此举亦可保留之前视图的滚动位置.
- 可通过配置变量禁用缓存,IE设置为0,或者改变视图缓存数量上限.
- 个别的ionView可以通过设置cache-view=”false”属性,或者修改其$stateProvider.state配置来禁用缓存.
- 更多的文档说明参见 ionNavView docs
注意:拥有大量图片或者视频的视图不应该被缓存
导航(重做以提升性能)
- 减少DOM操作
- 缓存视图(参见楼上)
- 增加transition帧数以使动画更加平滑
Angular v1.3
- 升级Ionic支持Angular v1.3
- 通常Ionic仅可在此升级上运行,但是实际上应用到这些变动的只是v1.3中动画使用promises,其在v1.2中使用的是callbacks.
- 更多信息参见 Angular 1.3 以及 ng 1.2 迁移至 1.3
功能
平台差异过渡效果(视图间切换会有不同平台的默认切换效果)
- 比如,iOS系统会将新视图由右侧进入运动到中间,而离开的视图则有中间运动到左侧移除.然而Android系统则会将退出中的(exiting?我不确定这个地方是不是我理解错了)视图由底至中的过渡,覆盖掉之前的视图(其仍然保持原位置).
- 平台过渡效果会遵循其默认行为,但是配置变量和个性化CSS可以让你轻松的重写这些行为.
ionNavTitle
使用导航标题指令设置个性化HTML到你的ionView模板的HEAD BAR标题.这可使每个视图可以拥有其被指定的个性化题目,譬如一个图片或者任何HTML,不再仅为文本.ionNavTitle docs
enable-menu-with-back-views
在许多移动应用中,侧滑菜单是在子级视图中被禁用掉的.enable-menu-with-back-views属性决定了在回退按钮显示时,侧滑菜单是否启用
- 当设置为false时,任何带有menuToggle指令的按钮/链接都会被隐藏,并且用户无法通过侧滑的方式打开其菜单.
- 当回到带有侧滑页的根级页面(没有可见的回退按钮的页面),菜单开关按钮会再次被显示,并且菜单再次被启用.
- 更多参见 ionSideMenus docs
menuClose
关闭一个当前开启的侧滑菜单.另外,menuClose指令现在会在一个菜单被关闭的过程中导致过渡动画直接完成. menuClose docs
ionNavBackButton
回退按钮图标和显示的文本会自动的遵从平台默认设置,譬如调整为平台回退图标.
- 欲练此功必先自宫,把 ionNavBackButton 指令设置为空, IE .
- 回退按钮依然可以像之前一样被完全定制,但是当其没有任何内容时,它知道应用平台的配置.
- 更多参见 ionNavBackButton docs
navBar 按钮首要/次要位置
现在side属性又有了两个值:primary(首要) secondary(次要),譬如 .
- 首要的按钮通常分布到header的左侧,次要的在右侧.
- 然而,它们精确的位置是有着平台特殊性.
- 例如,在iOS操作系统中,首要按钮在header的最左侧,次要按钮在header最右侧,标题则在两者中间居中.
- 但是到了Android系统,两组按钮都会在header的最右侧,而标题则在header最左侧
- 我们推荐使用primary secondary指令,这样按钮就会正确的处于平台用户最熟悉的位置.
- 为了保证按钮可以位于指定的精确位置,left right属性值依然可用.
- 更多参见 ionNavButtons docs
$ionicView 事件
现在视图可以缓存了,控制器就可以只加载一次了,于是乎就会改变你所期望的数据加载的方式.
- 视图的scope现在产生的新的事件:$ionicView.enter,$ionicView.leave,$ionicView.loaded.
- 这些事件包含了视图的数据,譬如标题和回退按钮是否应该显示,以及过渡数据,譬如过渡指定的类型和方向.
- 更多参见 ionView docs
重写过渡类型和方向
用户一旦在应用程序中切换导航,Ionic自动的会应用平台的过渡动画和用户导航的方向.这两者都可以通过如下方式被重写:配置变量,更改视图属性,修改stateProvider属性或者是修改引发过渡行为的按钮/链接的属性.
navDirection
设置视图过渡动画方向的属性. navDirection docs
navTransition
设置过渡动画的类型.想要禁用过渡动画需将其设置为 none . navTransition docs
$ionicConfigProvider
使用$ionicConfigProvider可以在你的应用程序配置阶段改变配置属性.$ionicConfig也可以在应用程序执行过程中设置/获取配置值. $ionicConfigProvider docs
破坏性改动
CSS动画
视图过渡效果的CSS被修改了.此举仅破坏了Ionic应用程序自定义了Ionic的动画CSS时的动画CSS.另外,所有的用不着的动画关键帧都被移除了.(省了20Kb! 不是KB)
$ionicPlatformDefaults
平台变量的配置不再使用$ionicPlatformDefaults常量,取而代之的是$ionicConfigProvider
navClear
avClear指令本来是用来做新的侧滑菜单enable-menu-with-back-views属性所做的那些事的,但是已经被肉体歼灭了.另外新的navTransition和navDirection指令更为有用和符合颗粒性.
scrollView.rememberScrollPosition
这个方法也因为缓存视图的出现而不再需要,被歼灭了.
弃用
ionView.title
ionView指令使用了title属性,但这样会导致在PC浏览器中显示tooltip.虽然title属性因为考虑到向后兼容依然可用,但是我们现在推荐使用view-title,譬如 .
ionNavView animation属性
由于不在被nav views使用,animation属性现在可以放心大胆的消灭掉了,取而代之的是$ionicConfig.
ionNavBar animation属性
由于不在被nav views使用,animation属性现在可以放心大胆的消灭掉了,取而代之的是$ionicConfig.
$ionicNavBarDelegate#changeTitle
想要设置标题现在使用title(value)(带一个参数).changeTitle()方法这个版本还可以凑合着用,会产生一个控制台警告信息.
$ionicNavBarDelegate#setTitle
想要设置标题现在使用title(value)(带一个参数).changeTitle()方法这个版本还可以凑合着用,会产生一个控制台警告信息.
$ionicNavBarDelegate#getTitle
想要获取标题设置,使用title()(没有参数).getTitle()方法这个版本依然可以凑合用,也会产生一个控制台警告信息
$ionicNavBarDelegate#back
back()方法已经由于$ionicHistory.goBack()的出现失去了价值,于是也被歼灭了.另外,$ionicGoBack()方法被添加到了rootScope. $ionicHistory docs
$ionicNavBarDelegate#getPreviousTitle
由$ionicHistory.backTitle()取代了getPreviousTitle()方法. $ionicHistory docs
$ionicViewService
在导航重构时,$ionicViewService被拆分为两部分,即$ionicViewSwitcher和$ionicHistory.$ionicHistory大体上还是$ionicViewService的那些东西,但是现在为了便于测试,两者的关注点被更好的分离开来. $ionicHistory docs
IONIC beta.14 版本变更一览的更多相关文章
- Gradle版本变更的问题
了解相关三个概念 gradle .gradle wrapper . gradle plugin (1)Gradle : 项目的构建工具,管理一个项目的依赖架包.性质和maven相似. (2)Gra ...
- JBoss和Tomcat版本、及Servlet、JSP规范版本对应一览 【转】
原文地址:http://blog.csdn.net/hills/article/details/40896357 JBoss和Tomcat版本.及Servlet.JSP规范版本对应一览 JBossAS ...
- activiti5.14版本在线流程设计器的国际化中文支持
参考了前辈的一些国际化支持做法,加上自己对流程的一些理解,做了activiti5.14版本的国际化支持.发现有若干bug,比如属性设置弹出窗口里的grid里的下拉列表不支持显示中文(要修改oryx.d ...
- Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建
Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Gerrit版本选择 1>.查看Gerrit官网 ...
- 代码写不对队-Beta冲刺版本
代码写不对队:Beta冲刺版本 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework ...
- ABBYY FineReader 12/14版本功能对比及14产品优势
FineReader 是一款一体化的 OCR 和PDF编辑转换器,随着版本的更新,功能的增加,FineReader 14的推出继续为用户在处理文档时提高业务生产力,该版本包含若干新特性和功能增强,包括 ...
- CentOS 7 tmpwatch 2.11 版本变更,移除 cronjob 任务
老版本(RHEL6) tmpwatch 原理 在 RHEL6 上,/tmp 目录的清理工作通常是交给 tmpwatch 程序来完成的,tmpwatch 的工作机制是通过 /etc/cron.daily ...
- Go1.14版本vendor和gomodule冲突问题
Go1.14版本vendor和gomodule冲突问题 go1.14版本使用go mod tidy构建依赖时会出现问题(见链接), 这个问题在go1.12版本是不会出现的. https://githu ...
- ASP.NET 5 Beta 7 版本
在 VS2015 发布的同时,微软也发布了 ASP.NET 5 的路线图(详见ASP.NET 5 Schedule and Roadmap : https://github.com/aspnet/ho ...
随机推荐
- 3139:[HNOI2013]比赛 - BZOJ
题目描述 Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联赛共N只队伍参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支 ...
- 【POJ】【2348】Euclid‘s Game
博弈论 题解:http://blog.sina.com.cn/s/blog_7cb4384d0100qs7f.html 感觉本题关键是要想到[当a-b>b时先手必胜],后面的就只跟奇偶性有关了 ...
- Jsonp 前后端交互操作
今天,因为项目的需要,研究了一下JSONP,特在此记录一下 ,希望可以帮助那些有疑惑的朋友们,本人也是刚学,高手略过即可. 关于Jsonp的定义就不说了,网上一片,大家可以自己查询.我就在此直接进入正 ...
- 20160722noip模拟赛alexandrali
[题目大意] 有许多木块, 叠放时, 必须正着叠放, 如图1, 左边两块为合法叠放, 右边为不合法叠放. 图1 一个方块被称为稳定的, 当且仅当其放在最底层, 或其正下方有方块且下方的这个方块的四周都 ...
- Java学习第三篇:类的三大特征,抽象类,接口,final关键字
一.类的三大特征 1.封装性 (1).什么是封装 封装就是把抽象出的数据和对数据的操作封装在一起, 数据被保护在内部, 程序的其他部分只有通过被授权的操作(成员方法), 才能对数据进行操作. (2). ...
- Unity3D研究院之Machine动画脚本自动生成AnimatorController
原地址: http://www.xuanyusong.com/archives/2811 以前的项目一直不敢用Machine动画,因为当时立项的时候Machine动画还不成熟,最近项目做得差不多了我能 ...
- 配置sql server2012属性 ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_5techref/html/6df812ad-4d80-4503-8a23-47719ce85624.htm
服务与服务器是两个不同的概念,服务器是提供服务的计算机,配置服务器主要是对内存.处理器.安全性等几个方面配置.由于SQL Server 2005服务器的设置参数比较多,这里选一些比较常用的介绍. 配置 ...
- 2013 ACM-ICPC长沙赛区全国邀请赛——A So Easy!
这题在比赛的时候不知道怎么做,后来看了别人的解题报告,才知道公式sn=(a+sqrt(b))^n+(a-sqrt(b))^n; 具体推导 #include<iostream> #inclu ...
- floodlight StaticFlowPusher 基于网段写flow,通配
flow1 = { "switch":"00:00:00:00:00:00:00:03", "name":"flow-mod-1& ...
- Netty 的Downstream 和 Upstream
Netty的Downstream 和 Upstream 如果一个event从第一个handler传递直到最后一个handler就是 Upstream 相反的如果一个event从最后一个handler传 ...