ionic2.x项目升级到ionic3.x后所遇到的坑

前言:之前做ionic项目时用的是ionic2.x的版本,项目做好时发现ionic都发布了ionic3.3.0的版本了,据官网文档介绍从ionic2.x→ionic3.x改善的挺大的,于是决定把项目升级到ionic3.3.0,关于怎么把已有的2.x的项目升级到3.x请参考 我之前写的一篇文章,那里面有介绍。好了不扯了,下面我说下我在把项目从ionic2.x升级到ionic3.x后所遇到的坑。


1.click事件延迟

        在用2.x的版本时,项目中的click事件没有什么延迟,反应还挺快的,但是升级到3.x后发现在ios设备上click事件延迟很明显。

解决办法: 点击事件click()最好写在这两个自带点击功能的元素身上,如果你非要给除这两个标签外的其他标签加click()事件,请给添加上tappable属性。

点击事件

点击事件

2.color属性不起作用

        在用2.x开发时有的地方的颜色样式是通过添加 color="primary" 属性的形式设置的,但是升级3.x之后这种方式除了一些自带的color属性的组件、标签(eg: )可以生效,其他的都失效了。

解决办法:  添加 ion-text 属性

    ionic2.x这么用 ↓

我是危险的红色

我是有颜色的

我也是有颜色的

    ionic3.x这么用 ↓ 

我是危险的红色

我是有颜色的

我也是有颜色的

至于这个color属性后面的值primary、secondary、danger这些都是可以自己设置的,在根目录的src文件夹里面的theme文件夹下有一个variables.scss的文件,可以在该文件中自行设置,如下图

全局color

3.升级后命令的变化

        ionic3与ionic2最大不同就是命令变化了很多,下表给出了两个版本之间命令区别

ionic2.x项目升级到ionic3.x后所遇到的坑_第2张图片
ionic2.x到ionic3.x的命令变化

4.Grid组件中标签上控制列所占宽度由原来width-50变为col-6

       在ionic2.x中,假如一行有两列,第一列宽度占比30%,第二列宽度占比70%,用官方给的grid组件代码是这样:

   

        30%

        70%

   

width-30就是列宽占行宽的30%,但是到了ionic3.X的版本中,width-X 这种用法被废除了,取而代之的是col-4,在ionic3的版本中grid中默认把一行分为12个栅格,也就是如果你在ionic2这样写的话,在ionic3中就要写成,因为默认是12个栅格,写为col-6意思是占6个栅格,也就是50%的意思。但是如果我们想2-8分的话,还按默认12格来那就麻烦了,因为col-后面只能是整数,接小数的话就会这个属性就会失效。这个时候需要我们把默认的12栅格改为10栅格,在全局样式中把默认的12改为10就好了,代码如下:   

$grid-columns:10;

改完后,那就好办了,直接按col-2  col-8来就好了(ionic3.x),代码如下:

   

        20%

        80%

   

效果如下图:

ionic2.x项目升级到ionic3.x后所遇到的坑_第3张图片
ion-grid的使用


暂时就只想到这么多,就先写这些,以后想起来了我就再增加进来。。。

文中如果有写错或不对的地方恳请您留言指出批评,如果此文对你有帮助,请收藏点赞。

你可能感兴趣的:(ionic2.x项目升级到ionic3.x后所遇到的坑)