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. Spring笔记1——Spring起源及其核心技术

    Spring的作用 当我们使用一种技术时,需要思考为什么要使用这门技术.而我们为什么要使用Spring呢?从表面上面SSH这三大框架中,Struts是负责MVC责任的分离,并且提供为Web层提供诸如控 ...

  2. 混合开发的大趋势之一React Native之简单的登录界面

    转载请注明出处:王亟亟的大牛之路 这些天都在学习RN这部分吧,然后写了个简单的登陆业务,从"实战"中讲解吧 还是继续安利:https://github.com/ddwhan0123 ...

  3. Fatal error compiling: java.lang.NoSuc hFieldError??

    用了两天时间,试了各种方法,问题最终解决.是JDK的版本问题:Maven3.5不支持jdk-9.0.1,最后退回:jdk1.8.0_151,问题圆满解决!! [ERROR] Failed to exe ...

  4. linux之磁盘配额(quota)使用方法(转)

    1.什么是quota 简单的说就是限制用户对磁盘空间的使用量. 因为Linux是多用户多任务的操作系统,许多人共用磁盘空间,为了合理的分配磁盘空间,于是就有了quota的出现. 2.quota的用途  ...

  5. Idea 切换git账号

    重置一下账号设置,再次执行拉取或推送会提示重新输入账号密码 进入项目根目录执行:git config --system --unset credential.helper

  6. LeetCode——Longest Word in Dictionary through Deleting

    1. Question Given a string and a string dictionary, find the longest string in the dictionary that c ...

  7. Python学习札记(八) Basic5 循环

    参考:循环 Note: A.for···in循环: 1.for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句. eg. #!/usr/bin/env python3 list_A ...

  8. HDU 1827 Summer Holiday

    http://acm.hdu.edu.cn/showproblem.php?pid=1827 题意: 听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家 ...

  9. 退出Vi(m)

    按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并退出vi :wq! 强制保存文件, ...

  10. 使用jsonp去访问跨域数据,回调使用数据

    var foo = function (data) { console.log("foo", data)} var testJsonP = function () { $.ajax ...