加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲

发布时间:2020-12-17 07:03:58 所属栏目:安全 来源:网络整理
导读:基本语法: 1、双向数据绑定 vue 指令:v-model= " msg " react constructor(){ this .state{ msg: " 双向数据绑定 " }render(){ input type= " text " value={ this .state.msg} onChange={(ev)= this .handleChange(ev)} / {msg}}handleChange(ev){ this .

基本语法:

1、双向数据绑定

vue

指令:v-model="msg"

react

constructor(){
  this.state{
    msg:"双向数据绑定"
}

render(){
  <input type="text" value={this.state.msg} onChange={(ev)=>this.handleChange(ev)} />{msg}
}

handleChange(ev){
  this.setState({
    msg:ev.target.value  
  })
}

angular --ngMel(属性型指令)

app.Module.ts:
import FromsModule from "@angular/froms";

app.component.ts:
export class Appcomponent{
    msg:"双向数据绑定"
}

app.components.html:
<input [(ngModel)]="msg" />{{msg}}

?

2、条件渲染:

vue

指令:
v-if v-else-if v-else v-show

react

使用三目(三联)运算:{true ? x:y}

angular ---*ngIf(结构型指令)

指令:*ngIf

没有else指令
如果想要else,要使用ng-template

demo:
<div *ngIf="isShow else elseBack">aaaaaaaaaaaaaaaaaaa</div> <ng-template #elseBack>ddddddddddddddd</ng-template> ng-template:模板

3、列表渲染:

vue

指令:v-for

<li v-for="item,index in list" key="index">{{item}}</li>

react

this.state.list.map((item)=>{
    return <li key="item.id">{item}</li>
})

angular

指令:*ngFor

<ul>
  <li *ngFor="let item of list,let i=index">{{i}},{{item}}</li>
</ul>

<ul>
  <li *ngFor="let item of list,index as i">{{i}},{{item}}</li>
</ul>

angular小案例:Todos

app.component.html:

<input type="text" [(ngModel)]="info" (keydown)="handleAdd($event)" >  //输入框
<ul>
  <li *ngFor="let item of list,index as i"> 
    {{i}},{{item}} <button (click)="handleRemove(i)">X</button>
  </li>   //显示列表
</ul>

app.component.ts:

export class AppComponent {
  list:Array<any>=[111,222,333]; //加入数据的数组
  info="";    //数据绑定变量
  handleAdd(ev){  //添加数据的方法
    if(ev.keyCode===13) {
      this.list.unshift(this.info);
      this.info = "";
    }
  }

  handleRemove(index){  //删除数据的方法
    this.list.splice(index,1);
  }
}    

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读