Angular DAY04

Angular04

命令行 说明

ng new 项目名	生成项目包
ng s -o	启动项目
ng g c 组件	生成组件
ng g p 管道	生成管道 {{xxx| 管道}}
ng g d 指令	生成指令
ng g s 服务	生成服务; 状态共享 相当于vuex

语法 含义

{{ 变量 }}	双标签内容
[属性名] = "值" 或 属性名="{{值}}"	属性
(事件名)="方法名()"	事件
[(ngModel)]="变量"<br>必须手动加载 Forms 模块	双向数据绑定
*ngIf	条件渲染
*ngFor = "let item of items; let i=index"	
<组件 #唯一标识 /><br>@viewChild('唯一标识') 变量:类型;	绑定变量到组件
<组件 属性名='值' /><br>@Input() 属性名:类型	父子传参

1.父声明一个方法
2.把方法通过事件方式传递给子
3.子调用父传入的方法, 把自身的消息传递到方法中 子父传参

1. 声明依赖: 类的构造方法声明 一个 特定类型的变量<br>2.注入: 系统在初始化组件时, 就必须传入指定类型的对象	服务的依赖注入机制
1. 网络模块默认不加载, 必须到 app.module.ts 中加载 HttpClientModule<br>2. 服务类型: HttpClient<br>3. 使用: this.http.get(地址).subscribe(res=>{})	网络服务
组件都有 出生 -> 更新自身 -> 死亡<br>1. 构造<br>2. ngOnInit() : 开始初始化<br>3. ngAfterContentInit(): 数据初始化完毕<br>4. ngAfterViewInit(): UI初始化完毕--界面<br>5. ngAfterContentChecked(): 数据更新完毕<br>6. ngAfterViewChecked(): UI更新完毕<br>7. ngOnDestroy(): 销毁	生命周期
ionic
项目启动命令:
ionic s
组件库: https://ionicframework.com/docs/components
按钮组件
https://ionicframework.com/docs/api/button
 
<!-- 按钮组件 -->
<ion-app>
  <ion-header>
    <ion-toolbar>
      <ion-title>Button按钮</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content>
    <!-- 按钮的风格: 默认会根据设备自动调整 -->
    <ion-button>default</ion-button>
    <!-- 风格属性: mode -->
    <ion-button mode="ios">mode: ios</ion-button>
    <ion-button mode="md">mode: android</ion-button>

    <!-- 大小: size -->
    <ion-button size="small">size:small</ion-button>
    <ion-button size="default">size:default</ion-button>
    <ion-button size="large">size:large</ion-button>

    <!-- 填充: fill -->
    <ion-button fill="clear">fill:clear</ion-button>
    <ion-button fill="outline">fill:outline</ion-button>
    <ion-button fill="solid">fill:solid</ion-button>

    <!-- 扩展性: expand -->
    <ion-button expand="full">expand:full</ion-button>
    <ion-button expand="block">expand:block</ion-button>

    <!-- 颜色风格: color  官方提供了一些固定的颜色风格 -->
    <ion-button color="primary">color:primary</ion-button>
    <ion-button color="secondary">color:secondary</ion-button>
    <ion-button color="success">color:success</ion-button>
    <ion-button color="warning">color:warning</ion-button>
    <ion-button color="danger">color:danger</ion-button>
    <ion-button color="light">color:light</ion-button>
    <ion-button color="dark">color:dark</ion-button>
    <ion-button color="medium">color:medium</ion-button>
    <ion-button color="tertiary">color:tertiary</ion-button>

    <!-- 不可用 -->
    <ion-button disabled>不可用</ion-button>
  </ion-content>
</ion-app>

徽章组件
https://ionicframework.com/docs/api/badge

<ion-app>
  <ion-header>
    <ion-toolbar>
      <ion-title>badge徽章</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content>
    <ion-badge color="primary">42</ion-badge>
    <ion-badge color="success">42</ion-badge>
    <ion-badge color="danger">42</ion-badge>

    <ion-badge color="warning">颜值主播</ion-badge>
    <ion-badge color="warning">舞蹈达人</ion-badge>
    <ion-badge color="warning">渣然</ion-badge>
  </ion-content>
</ion-app>

图标组件
官方提供了很多小图标, 可以直接使用
https://ionicons.com/

<ion-app>
  <ion-header>
    <ion-toolbar>
      <ion-title>icon图标</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content>
    <ion-icon name="logo-alipay"></ion-icon>

    <!-- 图标通过 字体调整大小 -->
    <ion-icon name="logo-alipay" style="font-size: 40px"></ion-icon>

    <ion-icon
      name="logo-alipay"
      style="font-size: 40px"
      color="tertiary"
    ></ion-icon>

    <ion-icon
      name="logo-wechat"
      style="font-size: 40px"
      color="success"
    ></ion-icon>
  </ion-content>
</ion-app>

卡片组件
https://ionicframework.com/docs/api/card

<ion-app>
  <ion-header>
    <ion-toolbar>
      <ion-title>Card卡片</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content>
    <!-- i-card-full -->
    <ion-card>
      <img
        src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606890843974&di=185d2f0518aac3964f7eb734ce5b9317&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201807%2F13%2F20180713223116_sfuuu.thumb.700_0.jpg"
        alt=""
      />
      <ion-card-header>
        <ion-card-subtitle>带土, 卡卡西,</ion-card-subtitle>
        <ion-card-title>火影忍者</ion-card-title>
      </ion-card-header>
      <ion-card-content>
        描述信息,描述信息描述信息描述信息描述信息描述信息
      </ion-card-content>
    </ion-card>
  </ion-content>
</ion-app>

输入框
https://ionicframework.com/docs/api/input

<ion-app>
  <ion-header>
    <ion-toolbar>
      <ion-title>输入框</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content>
    <ion-input type="text" placeholder="用户名"></ion-input>
    <ion-input type="password" placeholder="密码"></ion-input>
    <ion-input type="number" placeholder="数字"></ion-input>
  </ion-content>
</ion-app>

搜索框
https://ionicframework.com/docs/api/searchbar

<ion-app> 
  <ion-header> 
    <ion-toolbar> 
      <ion-title>搜索框</ion-title> 
    </ion-toolbar> 
  </ion-header> 
 
  <ion-content> 
    <ion-searchbar 
      placeholder="Filter Pizza" 
      (ionChange)="onSearchChange($event)" 
    ></ion-searchbar> 
  </ion-content> 
</ion-app> 

item
https://ionicframework.com/docs/api/item

export class AppComponent {
  // 输入框内容变化时 触发
  onSearchChange(event) {
    // console.log(event);
    let v = event.detail.value;
    console.log(v);

    //发请求给服务器, 查询结果并展示
  }
}
<ion-app> 
  <ion-header> 
    <ion-toolbar> 
      <ion-title>item</ion-title> 
    </ion-toolbar> 
  </ion-header> 
 
  <ion-content> 
    <ion-item color="warning"> 
      <ion-label>warning</ion-label> 
    </ion-item> 
 
    <!-- 点击效果 --> 
    <ion-item button detail> 
      <ion-label>账号与安全</ion-label> 
    </ion-item> 
 
    <ion-item button detail> 
      <!-- label:占据剩余所有空间 --> 
      <ion-label>青少年模式</ion-label> 
      <!-- text: 相当于span --> 
      <ion-text> 未开启 </ion-text> 
    </ion-item> 
 
    <ion-item detail button> 
      <!-- 插槽slot:  左start 右end --> 
      <ion-icon name="body-outline" color="primary" slot="start"></ion-icon> 
      <ion-label>附近的人</ion-label> 
    </ion-item> 
 
    <ion-item> 
      <!-- avatar: 头像 ----> 
      <ion-avatar slot="start"> 
        <img [src]="header" /> 
      </ion-avatar> 
      <ion-label> 
        <h2>一级演员-张嘉译</h2> 
        <p>任乐乐小姐姐, 看见请冒泡</p> 
      </ion-label> 
    </ion-item> 
 
    <ion-item> 
      <!-- thumbnail: 缩略图-- 正方形 --> 
      <ion-thumbnail slot="start"> 
        <img [src]="header" /> 
      </ion-thumbnail> 
      <ion-label> 
        <h2>一级演员-张嘉译</h2> 
        <p>这是什么属性</p> 
      </ion-label> 
    </ion-item> 
 
    <ion-item> 
      <ion-label>姓名:</ion-label> 
      <ion-input></ion-input> 
    </ion-item> 
 
    <!-- i-item-group --> 
    <ion-item-group> 
      <ion-item-divider> 
        <ion-label>A</ion-label> 
      </ion-item-divider> 
 
      <ion-item> 
        <ion-label>阿斌</ion-label> 
      </ion-item> 
      <ion-item> 
        <ion-label>阿强</ion-label> 
      </ion-item> 
 
      <ion-item-divider> 
        <ion-label>B</ion-label> 
      </ion-item-divider> 
 
      <ion-item> 
        <ion-label>奔驰</ion-label> 
      </ion-item> 
      <ion-item> 
        <ion-label>宝马</ion-label> 
      </ion-item> 
    </ion-item-group> 
  </ion-content> 
</ion-app> 

栅格布局grid
https://ionicframework.com/docs/api/grid

<!-- 布局: 栅格布局 --> 
<ion-app> 
  <ion-header> 
    <ion-toolbar> 
      <ion-title>grid栅格布局</ion-title> 
    </ion-toolbar> 
  </ion-header> 
 
  <ion-content> 
    <!-- i-grid --> 
    <ion-grid fixed> 
      <ion-row> 
        <!-- 每行分12--> 
        <ion-col size="6">1</ion-col> 
        <ion-col size="6">2</ion-col> 
      </ion-row> 
 
      <ion-row> 
        <!-- 每行分12--> 
        <ion-col size="2">2</ion-col> 
        <ion-col size="4">4</ion-col> 
        <ion-col size="6">6</ion-col> 
      </ion-row> 
 
      <ion-row> 
        <!-- 不写size 属性, 均分 --> 
        <ion-col>1</ion-col> 
        <ion-col>1</ion-col> 
        <ion-col>1</ion-col> 
      </ion-row> 
 
      <ion-row> 
        <!-- 超出12: 自动折行显示 --> 
        <ion-col size="6">6</ion-col> 
        <ion-col size="5">5</ion-col> 
        <ion-col size="5">5</ion-col> 
      </ion-row> 
    </ion-grid> 
  </ion-content> 
</ion-app> 

跨域解决办法
常用共三种:
• 服务端解决: cors
– 实际开发最常用
• 前端解决: 代码proxy
– 开发时常用, 如果发布成产品 不会使用!
• 前端+后端共同解决: jsonp
– 原理是 script 不会被 同源策略影响, 很少用.

angular的 proxy 解决方案
• 创建 src/proxy.conf.json

• 配置: 让启动时自动加载代理文件

• 启动时的替换原理:

• 重新启动: ionic s 即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值