1条件渲染:

小程序:用 wx:if="{{condition}}" 来判断是否需要渲染该代码块。

<view wx:if="{{condition}}">
    True
</view>

ng2:  用 *ngIf="condition"来判断是否需要渲染该代码块。
<p  *ngIf="condition">
    condition is true and ngIf is true.
</p>

对于ng2, 当=号里面的值为真时才渲染标签内的元素,为假时将元素移除。注意:这里是将元素从DOM树里面完全移除,而不是隐藏。 对于需要频繁切换可见性的元素来说,改变元素的display无疑要比频繁的移除和重新渲染高效的多。 不过,angulra2开发者认为,在大多数 UI中,当我们“关闭”一个组件时,在相当长时间内都不大可能想再见到它——可能永远也不见。 而且,当我们隐藏掉一个元素时,组件的行为还在继续——它仍然附加在它所属的 DOM 元素上, 它也仍在监听事件。 Angular 会继续检查哪些能影响数据绑定的变更。 组件原本要做的那些事情仍在继续。 虽然不可见,组件及其各级子组件仍然占用着资源。  虽然每种方法都有各自的优点和缺点,但使用 ngIf 来移除不需要的组件通常都会比隐藏它们更好一些。

微信小程序文档较少,不过根据文档中这段话:

一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好

可以推测wx:if和*ngIf实质是一样的,虽然在写法上有些区别,wx是将条件包裹在{{ condition }}里面。

2 循环列表渲染

小程序:

列表渲染:默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item
<view wx:for="{{items}}">
  {{index}}: {{item}}
</view>

如某个数组为[a,b,c,d],则对应的下标index为0,1,2,3,对应的变量名item为a,b,c,d

使用wx:for-item可以指定数组当前元素的变量名;

使用wx:for-index可以指定数组当前下标的变量名;

如: <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
      {{idx}}: {{itemName.message}}
      </view>

则此时下标idx为0,1,2,3, 变量名itemName为a,b,c,d

ng2:

<div *ngFor="let hero of heroes; let i=index">

    {{i + 1}} - {{hero.fullName}}

</div>
ng2里指定变量名用的是let hero of heroes,即设置变量名为hero,对应微信的 wx:for-item="itemName;
指定下标let  i=index,对应微信的wx:for-index="idx";

上面这种写法实际上已经经过语法糖包装后的写法,原来的写法太啰嗦,形似类似:

<template ngFor let-item [ngForOf]="items" let-i="index" [ngForTrackBy]="trackByFn">
    <li>...</li>
</template>

3数据绑定

微信:
数据绑定使用 Mustache 语法(双大括号)将变量包起来
    <view> {{ message }} </view>
并在js文件里面设置对应的变量值
Page({
  data: {
    message: 'Hello MINA!'
  }
})

微信小程序没有双向数据绑定,要改变变量值时,需要通过setdata改变,监听事件如
eventname: function(e) {
  this.setData({
    data: "im_new"
  })
}
注意不能这样this.data="im_new",否则会出错

ng2:

ng2:

主要看一下双向数据绑定:

<input [(ngModel)]="currentHero.firstName">

(123)表示绑定事件,[12345]表示绑定数据

通过[( )]即可实现双向数据绑定

这是种简写的形式,背后是这样写的
<input
    [ngModel]="currentHero.firstName"
    (ngModelChange)="currentHero.firstName=$event">

anjular2以及微信小程序的一点比较的更多相关文章

  1. 关于微信小程序的一点经验

    2018年的11月份,自己做微信小程序相关的项目已经有四个月,这四个月自己走过很多弯路,也学到了不少经验,下面就一一总结: 一,微信小程序的radio组件是可以改变按钮样式的(比如大小,颜色等等) 改 ...

  2. 如何快速地开发一个微信小程序

    如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...

  3. 微信小程序开发心得

    微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...

  4. 通过微信小程序看前端

    前言 2016年9月22日凌晨,微信官方通过“微信公开课”公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众 ...

  5. 微信小程序前端源码逻辑和工作流

    看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.j ...

  6. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  7. 如何为你的微信小程序体积瘦身?

    众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了. 在设计一个小程序之初,我们就需要重 ...

  8. 张小龙宣布微信小程序1月9日发布,并回答了大家最关心的8个问题

    2016 年 12 月 28 日,张小龙在微信公开课 PRO 版的会场上,宣布了微信小程序的正式发布时间. 微信小程序将于 2017 年 1 月 9 号正式上线. 同时他解释称,小程序就像PC时代的网 ...

  9. 使用DeviceOne实现微信小程序功能

    微信小程序即将推出,还没推出就火的不行了.基于微信这个巨大平台,小程序必然能有巨大成功.不过它并不能完全取代App,该开发App还得开发.如果我们自己想实现一个基于自己的APP包含类似微信的小程序功能 ...

随机推荐

  1. Live Score FAQ

    Q: Why doesn't the selected game go to top? A: The game which include your favorite team will be alw ...

  2. MySQL修改max_allowed_packet

    因mysql从库报错Last_IO_Error: Got a packet bigger than 'max_allowed_packet' bytes mysql> show slave st ...

  3. java中枚举类的实际应用

    知识点:在Java中,使用枚举类,当遇到实例类型有限的类时,并且数据库中用状态码代表一种含义时,如星期,性别,员工登陆某系统的状态等等, 可以考虑使用枚举类 本例子可以仿照,也可以使用自定义的类型处理 ...

  4. 数据结构实习 - problem K 用前序中序建立二叉树并以层序遍历和后序遍历输出

    用前序中序建立二叉树并以层序遍历和后序遍历输出 writer:pprp 实现过程主要是通过递归,进行分解得到结果 代码如下: #include <iostream> #include &l ...

  5. 2017 ACM-ICPC 南宁区比赛 Minimum Distance in a Star Graph

    2017-09-25 19:58:04 writer:pprp 题意看上去很难很难,但是耐心看看还是能看懂的,给你n位数字 你可以交换第一位和之后的某一位,问你采用最少的步数可以交换成目标 有五组数据 ...

  6. git-svn — 让git和svn协同工作

     git-svn — 让git和svn协同工作 svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目.但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题.也就是说对于尚未或暂 ...

  7. mysql 不同条件count ,多条件count()

    create table abc(A int,B int) Select A,count(B) as total from ABC group by A Select A,count(B) as to ...

  8. [Vue]使用axios实现ajax请求

    1.定义myAjax export const myAjax=function createHttpClient(ajaxConfig) {   let httpClient = null;   if ...

  9. Linux SSH隧道技术(端口转发,socket代理)

    动态转发(SOCKS5代理): 命令格式:ssh -D <local port> <SSH Server> ssh -fnND 0.0.0.0:20058 172.16.50. ...

  10. torch 深度学习(4)

    torch 深度学习(4) test doall files 经过数据的预处理.模型创建.损失函数定义以及模型的训练,现在可以使用训练好的模型对测试集进行测试了.测试模块比训练模块简单的多,只需调用模 ...