美文网首页hybrid APP(ionic)ionic开发Ios@IONIC
ionic2.x项目升级到ionic3.x后所遇到的坑

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

作者: hk_sky | 来源:发表于2017-06-13 11:19 被阅读846次

    前言:之前做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()最好写在<ion-button>、<a>这两个自带点击功能的元素身上,如果你非要给除这两个标签外的其他标签加click()事件,请给添加上tappable属性。

    <div  tappable  (click) = fun() >点击事件</div>

    <ion-item  tappable  (click) = fun() >点击事件</ion-item>

    2.color属性不起作用

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

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

        ionic2.x这么用 ↓

    <div color="danger">我是危险的红色</div>

    <p color="secondary">我是有颜色的</p>

    <span color="primary">我也是有颜色的</span>

        ionic3.x这么用 ↓ 

    <div  ion-text  color="danger">我是危险的红色</div> <p  ion-text  color="secondary">我是有颜色的</p>

    <span  ion-text  color="primary">我也是有颜色的</span>

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

    全局color

    3.升级后命令的变化

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

    ionic2.x到ionic3.x的命令变化

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

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

    <ion-grid  text-center>

        <ion-row>

            <ion-col  width-30>30%</ion-col>

            <ion-col  width-70>70%</ion-col>

        </ion-row>

    <ion-grid>

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

    $grid-columns:10;

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

    <ion-grid  text-center>

        <ion-row>

            <ion-col  col-2>20%</ion-col>

            <ion-col  col-8>80%</ion-col>

        </ion-row>

    </ion-grid>

    效果如下图:

    ion-grid的使用

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

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

    相关文章

      网友评论

      • hk_sky:为了方便大家沟通,笔者创建了一个QQ群供大家学习交流,欢迎有正能量的你加入进来,群号:668533059
      • 4aef68ddc2f6:作者写的很用心,赞一个,我目前身兼公司的2个项目,一个ionic2 一个ionic3 第一次做跨平台的项目,但是懂ng4
        hk_sky:@听说名字越长人就越帅 那个项目也是我16年底第一次写跨平台项目时的项目采坑总结:blush:
        hk_sky:我自己当时用ionic2的时候是16年底,当时遇到了好多问题,都是一点一点解决的,就想着把遇到的问题分享出来,让大家一起学习,少走弯路,欢迎加入我的Q群一起学习:668533059
      • 西门吹雪123:博主,我最近也在学习ionic3,遇到一个比较棘手的问题,在使用<img src="url">在浏览器中能够加载图片,但是编译到真机或者模拟器,图片无法加载出来,请问这个是什么问题?求指导。
        西门吹雪123:@hk_sky 谢谢博主回复,我找到原因了,主要是我使用的是公司代理网络,无法加载图片。:joy::joy:
        hk_sky:把你的url路径好好看看,还不行就私聊我
        hk_sky:那就说明是url的路径不对了
      • 娶个村姑当老婆:公司在做ionic 的app 用到的都是最新的东西 亚历山大 重点是直接就是开发 一脸懵逼 求作者给个参考文档 和学习文档 附上链接即可。
        hk_sky:@A3_d0a3 官方文档有些方面是简单带过,但是组件啊、配置啊、插件啊这些基本组成都有的,做一个简单的app是没有问题的,我当时就是看官方文档直接上手做项目的,遇到问题了就谷歌,谷歌上都能找到答案。
        娶个村姑当老婆:@hk_sky 我也在看两个 但是没啥用额 项目的功能需要用的不是一个文档能解决的问题额:flushed:
        hk_sky:我看的是ionic2的官方文档 http://ionicframework.com/docs/,这个是英文的,如果你想看中文的这个博客值得你看看http://www.cnblogs.com/yanxiaodi/p/6060123.html
      • Hoistthecolors:都在搞ionic3了。:+1: ,厉害。
      • hk_sky:欢迎大家留言评论,共同学习

      本文标题:ionic2.x项目升级到ionic3.x后所遇到的坑

      本文链接:https://www.haomeiwen.com/subject/rsnlqxtx.html