我开始学习角度v2和离子v2。
在ng2英雄教程中,他们在构造函数中使用私有关键字,但在离子样板源中,他们在构造函数中使用public关键字。
angular2教程
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
离子教程
es5
在反编译到.js
之后,.column-image > div picture > img{
opacity: 0;
animation-name: fadein;
animation-duration: 3s;
animation-iteration-count: 1;
animation-fill-mode: forwards;
-webkit-animation-name: fadein;
-webkit-animation-duration: 3s;
-webkit-animation-iteration-count: 1;
-webkit-animation-fill-mode: forwards;
}
#c1163 > div > div:nth-child(2) > div picture > img{
animation-delay: 0.5s;
-webkit-animation-delay: 0.5s;
}
#c1163 > div > div:nth-child(6) > div picture > img{
animation-delay: 1s;
-webkit-animation-delay: 1s;
}
#c1163 > div > div:nth-child(7) > div picture > img{
animation-delay: 1.5s;
-webkit-animation-delay: 1.5s;
}
#c1163 > div > div:nth-child(11) > div picture > img{
animation-delay: 2s;
-webkit-animation-delay: 2s;
}
#c1163 > div > div:nth-child(12) > div picture > img{
animation-delay: 2.5s;
-webkit-animation-delay: 2.5s;
}
@keyframes fadein {
from {
opacity:0;
}
to {
opacity:1;
}
}
@-moz-keyframes fadein {
from {
opacity:0;
}
to {
opacity:1;
}
}
@-webkit-keyframes fadein {
from {
opacity:0;
}
to {
opacity:1;
}
}
@-o-keyframes fadein {
from {
opacity:0;
}
to {
opacity: 1;
}
}
文件中的public和private是相同的。
但我真的不明白其中的区别。
答案 0 :(得分:1)
我认为Ionic样板代码使用了constirctors中的公共成员,以便能够利用Ahead of Time (AoT) Compilation。 请参阅Angular 2 Ahead-of-Time compiler: must I make all class properties public? 。
答案 1 :(得分:1)
这是"参数属性"的特征。打字稿。当我们使用任何关键字Public,Private,Protected或readonly时,它会自动创建并初始化class属性。请检查https://medium.com/@daveford/parameter-properties-in-typescript-c99df6ba13f7
答案 2 :(得分:0)
私有和公共仅适用于编译时而非运行时。默认情况下,函数是公开的,将某些内容标记为“私有”只是宣告您将其保密的意图。