Ionic-framework: virtualScroll์˜ ion-img๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์— ๋งŒ๋“  2017๋…„ 04์›” 23์ผ  ยท  56์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ionic-team/ionic-framework

Ionic ๋ฒ„์ „: ("x"๋กœ ํ•˜๋‚˜ ์„ ํƒ)
[ ] 1.x
[ ] 2.x
[X] 3.x

์ œ์ถœ ์ค‘์ž…๋‹ˆ๋‹ค
[X] ๋ฒ„๊ทธ ๋ณด๊ณ 
[ ] ๊ธฐ๋Šฅ ์š”์ฒญ
[ ] ์ง€์› ์š”์ฒญ => ์—ฌ๊ธฐ์— ์ง€์› ์š”์ฒญ์„ ์ œ์ถœํ•˜์ง€ ๋ง๊ณ  ๋‹ค์Œ ์ฑ„๋„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. https://forum.ionicframework.com/ ๋˜๋Š” http://ionicworldwide.herokuapp.com/

ํ˜„์žฌ ํ–‰๋™:
virtualScroll ๋‚ด์—์„œ DOC์— ์„ค๋ช…๋œ ๋Œ€๋กœ ion-img ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์ˆœ๊ฐ„์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(ํšŒ์ƒ‰ ์ƒ์ž๋งŒ ํ•ด๋‹น). ํŠน์ • ์Šคํฌ๋กค ํ›„ ์ผ๋ถ€ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณ  ์กฐ๊ธˆ ๋” ์Šคํฌ๋กคํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์‹œ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘:
์ด๋ฏธ์ง€๋Š” ํ•ด๋‹น ์š”์†Œ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๋•Œ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„:

์ด ํ”Œ๋Ÿฐ์ปค๋กœ ์ด๋™: http://embed.plnkr.co/WblnwO8P1lWgFW2TgVc1/

๊ฐ„๋‹จํ•œ ์—ฐ๋ฝ์ฒ˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์—ฐ๋ฝ์ฒ˜๋ฅผ ๋ช‡ ๊ฐœ ์Šคํฌ๋กคํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์ฝ”๋“œ:
๋ณด์‹œ๋‹ค์‹œํ”ผ ion-img ์˜ ์‚ฌ์šฉ๋ฒ•์€ DOCS์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.

<ion-content padding>

  <ion-list [virtualScroll]="items" approxItemHeight="100px">

    <ion-item *virtualItem="let item">
      <ion-img style="width:100px; height:100px" [src]="item.imgUrl"></ion-img>
      <span>
        <h1>{{item.name}}</h1>
        <p>{{item.phone}}</p>
      </span>
    </ion-item>

  </ion-list>

</ion-content>

๊ธฐํƒ€ ์ •๋ณด:
๋‚ด๊ฐ€ ์กฐ์‚ฌํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•ด updateImgs ํ•จ์ˆ˜์˜ content.js ํŒŒ์ผ์—์„œ ๋ชจ๋“  ์ด์˜จ ์ด๋ฏธ์ง€์˜ img.top ๊ฐ’์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ง€๋ง‰ ์œ„์น˜, ๋‹ค์Œ๊ณผ ๊ฐ™์€ 1900ํ”ฝ์…€). img.bottom ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค(์‚ฌ์‹ค, ๋ฌธ์ œ๋Š” img._bounds ).

์ด๊ฒƒ์ด ๋ฐ”๋กœ ๊ทธ ์ˆœ๊ฐ„์— img์˜ ๊ฒฝ๊ณ„๊ฐ€ viewableBottom ์™€ viewableTop - renderableBuffer ์‚ฌ์ด์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋กค์˜ ํŠน์ • ์ง€์ ์—์„œ ์ด๋ฏธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ๋ฌธ์ œ๋Š” img.js ์˜ _getBounds ๋ฉ”์„œ๋“œ์—๋Š” this._bounds this._rect ์†์„ฑ๋„ ์—†๊ณ 

IMO ๋ฌธ์ œ๋Š” ์–ด๋–ค ์‹์œผ๋กœ๋“  ion-img ์˜ ๊ฒฝ๊ณ„๊ฐ€ ๊ฐ€์ƒ ์Šคํฌ๋กค ๋…ธ๋“œ์˜ ๊ฒฝ๊ณ„( updateNodeContext() of virtual-util.js ).

Ionic ์ •๋ณด: (ํ„ฐ๋ฏธ๋„/cmd ํ”„๋กฌํ”„ํŠธ์—์„œ ionic info ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ถœ๋ ฅ์„ ์•„๋ž˜์— ๋ถ™์—ฌ๋„ฃ๊ธฐ):

Cordova CLI: 6.5.0 
Ionic Framework Version: 3.0.1
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.0

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ธํฌ๋ ˆ๋”๋ธ” ... ์ „์ฒด ํŒ€๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ React Native๋กœ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ๋ฒ„๊ทธ๊ฐ€ ์•„์ง ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋ณด๋‹ˆ ์–ด์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
Ionic 4์—์„œ ์ž‘์—…ํ•˜๋Š” ๋Œ€์‹  ์ฒซ ๋ฒˆ์งธ ํ’ˆ์งˆ์˜ ๋ฐฐ์†ก์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  56 ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์•ฑ์—์„œ ๋น„์Šทํ•œ ๋™์ž‘์„ ๋ณด๊ณ  ์žˆ์œผ๋ฉฐ Ionic Framework 3.0.1๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋กคํ•˜๋Š” ๋™์•ˆ DOM์„ ์กฐ์‚ฌํ•˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์—ฌ์ „ํžˆ ๋ณด์ด๋Š” ๋ทฐํฌํŠธ์— ์žˆ์ง€๋งŒ ์ผ๋ถ€ ion-image ๊ตฌ์„ฑ ์š”์†Œ์˜ class ์†์„ฑ์ด "img-loaded"์—์„œ "img-unloaded"๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”! ์ตœ์‹  ๋ฐค์— ์‹œ๋„ํ•ด๋ณด๊ณ  ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ธ์ง€ ํ™•์ธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ionic-angular ์˜ ์•ผ๊ฐ„์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ์—์„œ npm install ionic-angular<strong i="6">@nightly</strong> --save ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

์˜ˆ, ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค :(

๋‚˜๋„. ํ˜„์žฌ nightly์—์„œ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

*ngFor์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ด€๋ จ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋„ค์ผ ์ด๋ฏธ์ง€๋Š” ๋†’์ด๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ณ  ๋„ˆ๋น„๊ฐ€ 300ํ”ฝ์…€์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ v2์—์„œ ์˜ˆ์ƒ๋Œ€๋กœ ์ž˜๋ ธ๋Š”๋ฐ ์ด์ œ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ „ํ˜€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. 80x80px ์ธ๋„ค์ผ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    <ion-list [virtualScroll]="place.uploads" [approxItemHeight]=" '80px' ">
        <ion-icon name="images" margin-right></ion-icon>
        Photos
        <div *virtualItem="let photo">
            <ion-img width="80" height="80" [src]="photo.thumbnail_url"></ion-img>
        </div>
    </ion-list>

ํ™˜๊ฒฝ.txt
3.1.0์œผ๋กœ ์น˜๋ฃŒ๊ฐ€ ์•ˆ๋˜๋Š”๊ฑฐ ๊ฐ™์€๋ฐ์š”?
ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฐ์Šคํฌํ†ฑ Chrome(Win 10)์—์„œ 'ionic serve'๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ์ผ๋ถ€ ์ด๋ฏธ์ง€๊ฐ€ ํšŒ์ƒ‰ ์›์œผ๋กœ ๋Œ์•„์˜ฌ ๋•Œ๊นŒ์ง€ ์ด๋ฏธ์ง€ ๋Œ€์‹  ํšŒ์ƒ‰ ์›์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค ...

์ฝ”๋ฅด๋„๋ฐ” CLI: 6.5.0
Ionic ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „: 3.1.0
Ionic CLI ๋ฒ„์ „: 2.2.2
Ionic ์•ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „: 2.2.1
Ionic ์•ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „: 1.3.4
ios-deploy ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ
ios-sim ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ
์šด์˜ ์ฒด์ œ: ์œˆ๋„์šฐ 10
๋…ธ๋“œ ๋ฒ„์ „: v6.10.0
Xcode ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ

๋˜ํ•œ 3.1.0์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. -> ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ก์„ ์œ„ํ•ด - ์‹œ๋„๋œ 3.1.1 - ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ 3.1.1์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค - ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ค๋ž˜๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค - RC4 ์ดํ›„๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค - ๋ชจ๋“  ์ •๋ณด๋Š” #9660์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@jgw96 https://github.com/shprink/ionic-withwebworker-vs-withoutwebworker ์—์„œ Ionic 3.1.1๋กœ ์‰ฝ๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ก์„ ์œ„ํ•ด ์บ”๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. :)
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง€์—ฐ ๋กœ๋”ฉ์„ ์œ„ํ•œ ๊ณตํ†ต "์ด์˜จ ์บ”๋ฒ„์Šค" ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? :)

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค :/

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค :)

์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š”... ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค... ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋งจ ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ธฐ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๋งจ ์•„๋ž˜์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค... ์œ„๋กœ ์Šคํฌ๋กคํ•ด๋„ ์ฃผ๋จน ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

  <ion-list [virtualScroll]="playList" [approxItemHeight]="imageSize + 'px'" [approxItemWidth]="imageSize + 'px'" [bufferRatio]=10>
        <div *virtualItem="let post" [style.width]="imageSize + 'px'" [style.height]="imageSize + 'px'">
          <ion-img [src]="element.pathToImage" [width]="imageSize+ 'px'" [height]="imageSize + 'px'"  ></ion-img>
        </div>
      </ion-list>

๋‹ค์Œ์€ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ๋•Œ์˜ html์ž…๋‹ˆ๋‹ค.
<ion-img class="img-unloaded" ng-reflect-src="assets/img/1.jpg" ng-reflect-width="705px" ng-reflect-height="705px"> <img> </ion-img>
ํ‘œ์‹œํ•  ๋•Œ:
<ion-img class="img-unloaded" ng-reflect-src="assets/img/1.jpg" ng-reflect-width="705px" ng-reflect-height="705px" style="width: 705px; height: 705px;"> <img src="assets/img/1.jpg" alt=""> </ion-img>

๋ฒ„๊ทธ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ด ์˜๊ฒฌ์—์„œ https://github.com/ionic-team/ionic/issues/9660#issuecomment -304840427์€ ์ด์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๋‚˜๋„ ์ด๊ฒƒ์„ ์–ป plunk ๋Š” ๋˜ํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ

$ ionic info

global packages:

    @ionic/cli-utils : 1.5.0
    Cordova CLI      : 7.0.1
    Ionic CLI        : 3.5.0

local packages:

    @ionic/app-scripts              : 2.0.2
    @ionic/cli-plugin-cordova       : 1.4.1
    @ionic/cli-plugin-ionic-angular : 1.3.2
    Cordova Platforms               : android 6.2.3
    Ionic Framework                 : ionic-angular 3.5.3

System:

    Node       : v6.11.0
    OS         : Windows 10
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed
    npm        : 5.3.0

์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ์—ˆ์ง€๋งŒ ์ด ์ž„์‹œ ์Šคํƒ€์ผ ํ•ดํ‚น์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

   <ion-list [virtualScroll]="items">
        <ion-item *virtualItem="let item" style="overflow:hidden;width:300px;height:300px;">
            <ion-img [src]="item.url" [cache]="true" [width]="item.width" [height]="item.height"></ion-img>
        </ion-item>
    </ion-list>

๊ทธ๋ฆฌ๊ณ  ์ด CSS ๊ทœ์น™:

    ion-label {
        height: 100%;
    }

๊ทธ๊ฒƒ์ด ์ˆ˜์ •์ด๋ผ๊ณ  ๋งํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์•„์ง ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์™€ ๋‹ค๋ฅธ ๋ฌธ์ œ์—์„œ ์ œ์•ˆ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ ์Šคํฌ๋กค์ด ์˜ต์…˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ž‘์€ ์ถ•์†ŒํŒ ๋ชฉ๋ก์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์Šคํฌ๋กคํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๋ชจ๋ฐ”์ผ์—์„œ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค...

๋…๋ฆฝ์ ์ธ ng-lazyload-image๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ์•ฝ๊ฐ„์˜ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ๋ฌด๊ฑฐ์› ์Šต๋‹ˆ๋‹ค. (์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ์ด๋ฏธ ํ•ด๊ฒฐํ•œ ๋‹ค๋ฅธ ์ด์œ ๋กœ ์ธํ•ด - ์บ”๋ฒ„์Šค๊ฐ€ ๋งค์šฐ ํ”๋“ค๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์ด์˜จ ์Šคํฌ๋กค๋กœ ์ด๋™ํ•ด์„œ๋Š” ์•ˆ ๋จ)

๋‚˜๋Š” ์—„๊ฒฉํ•œ ํ”„๋กœ์ ํŠธ ํƒ€์ž„ ๋ผ์ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ์ด ์„ฑ๊ฐ€์‹  ๋ฒ„๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ด์˜จ ๊ธฐ๋ฐ˜ ์ˆ˜์ •์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ (bubbleguuum)์€ ๋˜ํ•œ ๊ทธ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ๋””๋ฒ„๊น…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๊ฑฐ ์•„๋‹ ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋ฌด๋„ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ–ˆ๋‹ค. (์ผ๋ถ€ ์žฌ์„ค๊ณ„๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ์ง€๋งŒ ์ž„์‹œ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ๊ฒŒ์‹œ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.) ์ €๋Š” ๋…๋ฆฝ ๊ฐœ๋ฐœ์ž์ด๋ฏ€๋กœ ์ˆ˜์ •ํ•˜๋ฉด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.:)

์–ด์จŒ๋“  Angular์—๋Š” ์˜๋ฏธ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ณ ํ†ต์€ ๊ฑฐ๊ธฐ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.
์ถ”์  ์ถ”์ ์€ ์•ฑ์˜ ํ˜ธ์ถœ์ž๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ํ•ญ์ƒ ๋” ๊นŠ์€ ์ˆ˜์ค€์—์„œ ์ผ์ข…์˜ webpack/promise ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. @bubbleguuum ์ด ๋จธ๋ฆฌ๋ฅผ ๋งž์•˜์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ ˆ๋Œ€ ์šฉ๋‚ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ์•ฑ์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์˜ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ 2016๋…„ 12์›” ๋ฌธ์ œ #9660์ด ์žˆ๊ณ  ์—ฌ์ „ํžˆ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋Š” ์‚ฌ์‹ค์ด ๋ถˆ์•ˆํ•ฉ๋‹ˆ๋‹ค... :(

์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. json์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  *ngFor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ŸฐํŠธ์—”๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ion-img์˜ img ํƒœ๊ทธ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋กœ ๊ณต๋ฐฑ์œผ๋กœ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

        <ion-item *ngFor="let product of products">
            <span class="ratings">{{product.brand}}</span>
            <ion-img src="assets/images/user_quest.png" width="40" height="22" class="user_quest"></ion-img>
            <ion-img src="{{product.img}}" width="90" height="115"></ion-img>
            <div text-center margin-top margin-bottom>
            </div>
            <p class="brand_name">{{product.brand}}</p>
            <p class="product_name">{{product.name}}</p>
            <p class="product_price">10 &euro;</p>
            <div text-center margin-top>
                <button ion-button color="light" class="add_cart_btn" icon-end>Add to cart</button>
            </div>
        </ion-item>

ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์ด๋ ‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

ionic

์ €๋„ ์œ—๋ถ„๊ณผ ๊ฐ™์€ ๊ณ ๋ฏผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค
code

์ด๊ฒƒ์€ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค

console

์–ผ๋งˆ ์ „์— ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋„ ๋ฐฐ์—ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ URL์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

.ts ํŒŒ์ผ์—์„œ

this.pizzaList = this.pizzaList.map((ํ”ผ์ž)=>{
Pizzas.imgUrl = "./assets/" + pizzas.imgUrl + ".jpg";
๋ฐ˜ํ’ˆ ํ”ผ์ž
});

์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋™์•ˆ ์ง€๋„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์„œ๋น„์Šค
services

.ts ํŒŒ์ผ
code

*ngfor ๋‚ด๋ถ€์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ „ํ™˜ํ•˜๊ณ ์žˆ๋‹ค ํ•ด๊ฒฐ์ฑ…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ !!

์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?!?

@karimessouabni ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋นˆ ์ด๋ฏธ์ง€๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด img ํƒœ๊ทธ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
<img src="{{product.img}}">

@shahid27125 ๋ชจ๋“  ์ด๋ฏธ์ง€๊ฐ€ ์ฆ‰์‹œ ๋กœ๋“œ

@fdambrosio ์ด ๋Œ“๊ธ€์—์„œ https://github.com/ionic-team/ionic/issues/9660#issuecomment -304840427์ด ์ด์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@DavidWiesner ๊ฐ์‚ฌ

์ขŒ์ ˆํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•œ ๋ช… ๋” ๋ผ์–ด๋“ค์—ˆ๋‹ค... ์ง„์‹ฌ์œผ๋กœ ์–˜๋“ค์•„, ๊ทธ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ๊ณ ์ณ๋ผ.

@tomcatmwi์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์™€์šฐ, ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์–ผ๋งˆ๋‚˜ ์˜ค๋žซ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ๋Š”์ง€ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ... ์ง€๊ธˆ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๋กœ๋”ฉ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ng2-lazyload-image ๋ชจ๋“ˆ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.npmjs.com/package/ng2-lazyload-image

๋‚˜๋Š” ํ”„๋กœ๋•์…˜์—์„œ ์ˆ˜์ฒœ ๊ฐœ์˜ ํ–‰๊ณผ ํ•จ๊ป˜ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์™„์ „ํžˆ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค.

  1. ๋จผ์ € ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ํ•ญ๋ชฉ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ๊ตฌ์„ฑ ์š”์†Œ์ธ ๊ฒฝ์šฐ).
  2. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ด์˜จ ํ•จ๋Ÿ‰์— ๋Œ€ํ•œ ์ž์ฒด ์ฐธ์กฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฌผ๋ก  ์ฒ˜์Œ ๋ช‡ ๊ฐœ์˜ ์ด๋ฏธ์ง€๋Š” ์Šคํฌ๋กคํ•  ๋•Œ๊นŒ์ง€ ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. ์–ด๋–ค ์ƒํƒœ์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ๊ฐ€์ƒ ๋ชฉ๋ก์„ ์ œ๊ฑฐํ• ์ง€ ์ƒ๊ฐํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  5. git checkout .
  6. ionic ํŒ€ @adamdbradley ๊ฐ€ 2017๋…„ ์ดˆ๋ถ€ํ„ฐ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ๋ฅผ ์•Œ์•„
  7. ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฒ„๊ทธ..

์—ฌ๊ธฐ ์‚ฌ์„ธ์š”

๋„ค, ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.
์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ๋‚˜๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค : https://www.npmjs.com/package/ng-lazyload-image

๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š” :)

<ion-img [src]="url"></ion-img> ์„ <img [src]="url">

์ด ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. img๋ฅผ ์‚ฌ์šฉํ•˜๋Š” @dm-grinko๋Š” ์ง€์—ฐ ๋กœ๋”ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์„ ๋•Œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๊ฐ€ ๋ฐฐ์—ด์— ์žˆ์—ˆ๋Š”๋ฐ ์ด์ œ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.๊ฐ€์ƒ ์Šคํฌ๋กค์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๊ณ  1-2๊ฐœ์˜ ์ด๋ฏธ์ง€๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

<ion-list [virtualScroll]="Images">
<ion-item *virtualItem="let item">
          <ion-img src="data:image/*;base64,{{item.ImageValue}}" style="height: auto; width: auto;">
</ion-img>
              </ion-item>
</ion-list>

@husainsr ion-img๋ฅผ img๋กœ ๋ณ€๊ฒฝ
ion-img๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์ด๋ฏธ์ง€ ๊ฐ’์ด base64 ๋ฌธ์ž์—ด์— ์ €์žฅ๋œ ๋ฐฐ์—ด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— <img> ๋„ virtualscroll์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธํฌ๋ ˆ๋”๋ธ” ... ์ „์ฒด ํŒ€๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ React Native๋กœ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ๋ฒ„๊ทธ๊ฐ€ ์•„์ง ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋ณด๋‹ˆ ์–ด์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
Ionic 4์—์„œ ์ž‘์—…ํ•˜๋Š” ๋Œ€์‹  ์ฒซ ๋ฒˆ์งธ ํ’ˆ์งˆ์˜ ๋ฐฐ์†ก์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ผ ์ฃผ์œ„์— ๋‚จ์ž?

๋ชจ๋“  ์†”๋ฃจ์…˜ @ionic ํŒ€???

์†”์งํžˆ ๋งํ•˜๋ฉด ionic ํŒ€์€ ๋‚ด๊ฐ€ ๋‚ด ์ž์‹ ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์„ ๋•Œ ์œ ์šฉํ–ˆ๋˜ ์ปคํŒจ์‹œํ„ฐ์™€ ๊ฐ™์€ ๋ฉ‹์ง„ ๋…๋ฆฝ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด์˜จ ๊ฐ€์ƒ ์Šคํฌ๋กค ๊ธฐ๋Šฅ์€ ํ˜„๋ช…ํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ์Šคํ…์‹ค(์›น ๊ตฌ์„ฑ ์š”์†Œ, ์†๋„ ํ–ฅ์ƒ, ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ง€์›ํ•˜์ง€ ์•Š์Œ, Safari hws ๋ฌธ์ œ)์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์œผ๋ฏ€๋กœ v4๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๊ธฐ๋‹ค๋ฆฌ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ๊ฐ€์ƒ ์Šคํฌ๋กค ๊ตฌํ˜„์€ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ž…๋‹ˆ๋‹ค. (ํ™”๋ฉด ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ ๋ฒ„๊ทธ, ๊ฐ€๋ณ€ ํ•ญ๋ชฉ, ์ง€์—ฐ ๋กœ๋”ฉ ๋ฌธ์ œ, ๋„ˆ๋ฌด ๋ปฃ๋ปฃํ•จ, ๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ๋„, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•˜๋Š” ์ผ) 2016๋…„์—๋Š” Angular์— ๋Œ€ํ•ด์„œ๋„ ์•ฝ๊ฐ„์˜ ์ง€์‹์ด ์žˆ์—ˆ์ง€๋งŒ ์—…๊ณ„์—์„œ ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์ผํ–ˆ์ง€๋งŒ ๋งค์šฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ง๊ฐ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๋ณธ ๊ฐœ๋…์ด ์ž๋ฆฌ ์žก์€ 3์ฃผ๊ธฐ ํ›„์— ๊ฒŒ์‹œ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ๋„์— ๊ด€ํ•ด์„œ๋„ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋จธํ‹ฐ๋ฆฌ์–ผ์—๋„ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์œ ์—ฐํ•œ ๊ฐ€์ƒ ์Šคํฌ๋กค์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์‰ฌ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์™€ ๋งŽ์ด ํ†ตํ•ฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ํ•œ ๋‹ฌ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. (์–ธ์ œ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ง€๊ธˆ์€ 1๋…„์ž…๋‹ˆ๋‹ค.) ๊ทธ๋ž˜์„œ ์š”์ฆ˜์€ ์ด์˜จ ๊ฐœ๋…์ด ์•ฝ๊ฐ„ ํ”๋“ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋ฐ˜์‘๊ณผ ํ•จ๊ป˜ ์ด์˜จ v4๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  JavaScript ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ธฐ๋ณธ ์•ฑ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์กด์žฌํ•œ๋‹ค๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ถˆํ–‰ํžˆ๋„ swift, android ๋ฐ ๊ธฐํƒ€ ๊ฒƒ๋“ค๋„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. C++. ์ง€๊ธˆ์€ ์›น ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ์•ฝ๊ฐ„์˜ ์ฃผ์Šค๋ฅผ โ€‹โ€‹๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์†๋„๋Š” ๊ดœ์ฐฎ๊ณ  ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์ด ํ‘œ์ค€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ pwa ๋•Œ๋ฌธ์— ์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์ง€๋งŒ ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๊ฐ€์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (๋ˆ„๊ตฐ๊ฐ€๋Š” ๋‘ ๋ฒˆ ๊ฐœ๋ฐœํ•ด์•ผ ํ•จ) ์˜คํ”ˆ ์†Œ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ •๋ง ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์šฐ๋ฆฌ ํŒ€์€ ๋” ์ด์ƒ ionic์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฏฟ์„ ์ˆ˜์—†๋Š” !!!

์ด ๋ฌธ์ œ๋Š” Ionic 3 ๋ฌธ์ œ๋กœ ์ž๋™ ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ตœ๊ทผ์— Ionic 3๋ฅผ ์ž์ฒด ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ Ionic 3์šฉ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜์‹ญ์‹œ์˜ค.

์ œ๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ–ˆ๊ณ  ์ด ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ Ionic 4์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๋ฉด Ionic Framework ํŒ€์— ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค!

์•„์ด์˜ค๋‹‰์„ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ฌธ์ œ ์ด๋™: https://github.com/ionic-team/ionic-v3/issues/210

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰