由网友(58758323)提供

重构

视图缓存

  1. 之前用户一旦在应用程序中执行导航动作,每个退出的视图元素和scope都会被销毁.如果相同的视图再次被访问,应用程序会重新生成元素.现在,视图可以被缓存以提高性能.
  2. 现在,当一个视图退出之后,元素将被遗留在DOM中,它的scope在这段时间内会被断开.当导航至一个已经被缓存的视图中,它的scope会被重新链接,并且其遗留在DOM中的元素会被重新激活到当前视图.
  3. 此举亦可保留之前视图的滚动位置.
  4. 可通过配置变量禁用缓存,IE设置为0,或者改变视图缓存数量上限.
  5. 个别的ionView可以通过设置cache-view=”false”属性,或者修改其$stateProvider.state配置来禁用缓存.
  6. 更多的文档说明参见 ionNavView docs

注意:拥有大量图片或者视频的视图不应该被缓存

导航(重做以提升性能)

  1. 减少DOM操作
  2. 缓存视图(参见楼上)
  3. 增加transition帧数以使动画更加平滑

Angular v1.3

  1. 升级Ionic支持Angular v1.3
  2. 通常Ionic仅可在此升级上运行,但是实际上应用到这些变动的只是v1.3中动画使用promises,其在v1.2中使用的是callbacks.
  3. 更多信息参见 Angular 1.3 以及 ng 1.2 迁移至 1.3

功能

平台差异过渡效果(视图间切换会有不同平台的默认切换效果)

  1. 比如,iOS系统会将新视图由右侧进入运动到中间,而离开的视图则有中间运动到左侧移除.然而Android系统则会将退出中的(exiting?我不确定这个地方是不是我理解错了)视图由底至中的过渡,覆盖掉之前的视图(其仍然保持原位置).
  2. 平台过渡效果会遵循其默认行为,但是配置变量和个性化CSS可以让你轻松的重写这些行为.

ionNavTitle

使用导航标题指令设置个性化HTML到你的ionView模板的HEAD BAR标题.这可使每个视图可以拥有其被指定的个性化题目,譬如一个图片或者任何HTML,不再仅为文本.ionNavTitle docs

enable-menu-with-back-views

在许多移动应用中,侧滑菜单是在子级视图中被禁用掉的.enable-menu-with-back-views属性决定了在回退按钮显示时,侧滑菜单是否启用

  1. 当设置为false时,任何带有menuToggle指令的按钮/链接都会被隐藏,并且用户无法通过侧滑的方式打开其菜单.
  2. 当回到带有侧滑页的根级页面(没有可见的回退按钮的页面),菜单开关按钮会再次被显示,并且菜单再次被启用.
  3. 更多参见 ionSideMenus docs

menuClose

关闭一个当前开启的侧滑菜单.另外,menuClose指令现在会在一个菜单被关闭的过程中导致过渡动画直接完成. menuClose docs

ionNavBackButton

回退按钮图标和显示的文本会自动的遵从平台默认设置,譬如调整为平台回退图标.

  1. 欲练此功必先自宫,把 ionNavBackButton 指令设置为空, IE .
  2. 回退按钮依然可以像之前一样被完全定制,但是当其没有任何内容时,它知道应用平台的配置.
  3. 更多参见 ionNavBackButton docs

navBar 按钮首要/次要位置

现在side属性又有了两个值:primary(首要) secondary(次要),譬如 .

  1. 首要的按钮通常分布到header的左侧,次要的在右侧.
  2. 然而,它们精确的位置是有着平台特殊性.
  3. 例如,在iOS操作系统中,首要按钮在header的最左侧,次要按钮在header最右侧,标题则在两者中间居中.
  4. 但是到了Android系统,两组按钮都会在header的最右侧,而标题则在header最左侧
  5. 我们推荐使用primary secondary指令,这样按钮就会正确的处于平台用户最熟悉的位置.
  6. 为了保证按钮可以位于指定的精确位置,left right属性值依然可用.
  7. 更多参见 ionNavButtons docs

$ionicView 事件

现在视图可以缓存了,控制器就可以只加载一次了,于是乎就会改变你所期望的数据加载的方式.

  1. 视图的scope现在产生的新的事件:$ionicView.enter,$ionicView.leave,$ionicView.loaded.
  2. 这些事件包含了视图的数据,譬如标题和回退按钮是否应该显示,以及过渡数据,譬如过渡指定的类型和方向.
  3. 更多参见 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 版本变更一览的更多相关文章

  1. Gradle版本变更的问题

    了解相关三个概念 gradle .gradle wrapper . gradle plugin (1)Gradle  :  项目的构建工具,管理一个项目的依赖架包.性质和maven相似. (2)Gra ...

  2. JBoss和Tomcat版本、及Servlet、JSP规范版本对应一览 【转】

    原文地址:http://blog.csdn.net/hills/article/details/40896357 JBoss和Tomcat版本.及Servlet.JSP规范版本对应一览 JBossAS ...

  3. activiti5.14版本在线流程设计器的国际化中文支持

    参考了前辈的一些国际化支持做法,加上自己对流程的一些理解,做了activiti5.14版本的国际化支持.发现有若干bug,比如属性设置弹出窗口里的grid里的下拉列表不支持显示中文(要修改oryx.d ...

  4. Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建

    Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Gerrit版本选择 1>.查看Gerrit官网 ...

  5. 代码写不对队-Beta冲刺版本

    代码写不对队:Beta冲刺版本 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework ...

  6. ABBYY FineReader 12/14版本功能对比及14产品优势

    FineReader 是一款一体化的 OCR 和PDF编辑转换器,随着版本的更新,功能的增加,FineReader 14的推出继续为用户在处理文档时提高业务生产力,该版本包含若干新特性和功能增强,包括 ...

  7. CentOS 7 tmpwatch 2.11 版本变更,移除 cronjob 任务

    老版本(RHEL6) tmpwatch 原理 在 RHEL6 上,/tmp 目录的清理工作通常是交给 tmpwatch 程序来完成的,tmpwatch 的工作机制是通过 /etc/cron.daily ...

  8. Go1.14版本vendor和gomodule冲突问题

    Go1.14版本vendor和gomodule冲突问题 go1.14版本使用go mod tidy构建依赖时会出现问题(见链接), 这个问题在go1.12版本是不会出现的. https://githu ...

  9. ASP.NET 5 Beta 7 版本

    在 VS2015 发布的同时,微软也发布了 ASP.NET 5 的路线图(详见ASP.NET 5 Schedule and Roadmap : https://github.com/aspnet/ho ...

随机推荐

  1. 1934: [Shoi2007]Vote 善意的投票 - BZOJ

    Description幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以 ...

  2. Vim 配置 winmanager

    问题描述: winmanager是vim中插件,可以方便的查看当前文件夹中文件,可以切换vim打开文件,非常方便 现在说明安装和使用winmanager 问题解决: (1)winmanager源文件 ...

  3. SSAO

    http://blog.csdn.net/xoyojank/article/details/5734537 http://john-chapman-graphics.blogspot.com/2013 ...

  4. matlab fscanf用法

    matlab fscanf用法 matlab中的fscanf的用法如下: A=fscanf(fid,format)[A, count]=fscanf(fid,format,size) [A, coun ...

  5. 基于EBP的栈帧

    程序的OEP,一开始以 push ebp 和mov ebp esp这两句开始.   原因:c程序的开始是以一个主函数main()为开始的,而函数在访问的过程中最重要的事情就是要确保堆栈的平衡,而在wi ...

  6. 微信ios版6.2更新 聊天记录迁移更快捷朋友圈可翻译

    微信iPhone版昨日发布更新,版本号为微信 6.2 for iOS,主要特性有聊天记录迁移.发送图片更快捷.支持朋友圈翻译.手机充值可充流量查余额.可以通过展示二维码来收钱,和ytkah一起来瞧瞧吧 ...

  7. What is XMLHTTP? How to use security zones in Internet Explorer

    Types of Security Zones Internet Zone This zone contains Web sites that are not on your computer or ...

  8. IDataParameter[]

    IDataParameter[]简单的说来,就是可以包含任何数据库参数的数组,这些参数可以是SqlParameter或者OleDbParameter,但是,IDataParameter[]不可以直接从 ...

  9. DJANGO的requirements的运用

    这里记录一下我现在项目的requirements.pip文件,安装命令为: pip install -r requirements.pip 这样一来,所有依赖,全部搞定. Django== djang ...

  10. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...