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. [BZOJ4010]菜肴制作

    Description 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号 ...

  2. oracle的 分表 详解 -----表分区

    此文从以下几个方面来整理关于分区表的概念及操作:         1.表空间及分区表的概念         2.表分区的具体作用         3.表分区的优缺点         4.表分区的几种类 ...

  3. Matrix_QP(A_2SeqSum)

    hdu_4686 题目大意:给出an,bn的递推,求ai*bi(i=0,1,--n-1)的和(an=a(n-1)*Ax+Ay, bn=b(n-1)*Bx+By, a0=A0, b0=B0, Ax,Bx ...

  4. contos LINUX搭建LAMP笔记

    LINUX搭建LAMP笔记 .YUM:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于R ...

  5. 从0开始 数据结构 字典树 hdu1251

    字典树 知识补充 '\0'和'\n'的区别 '\0' 是一个字符串的结尾 '\n' 是换行符 gets 和 scanf 的区别 gets()函数总结: gets() 从标准输入设备读取字符串,以回车结 ...

  6. 01_Storm体系概要

    1. Storm发展历史 Storm历史 1. 2010年12月,backtype公司Nathan,提出Storm的核心概念2. backtype, 提供数据分析,数据处理服务的一个公司3. 2011 ...

  7. 手把手教你整合 SpringMvc+Spring+MyBatis+Maven

    注:该教程是参考孙宇老师的<SpringMvc+Spring+Mybatis+Maven整合视频教程1>整理的,花了我六个多小时,边复习视频边调代码边写教程,保证该教程每一步都能正确执行, ...

  8. HTop 防止进程重复显示

    按F2 选择 Display options 选择 Hide userland threads 比Top更加好用!

  9. python+opencv+pyqt5控制摄像头在Qlabel上显示

    import cv2 import numpy as numpy from PIL import * import sys from PyQt5.QtWidgets import * from PyQ ...

  10. java.net.SocketException: Connection reset 问题分析

    1. socket编程时容易碰到如下异常: java.net.SocketException: Connection reset by peer: socket write error at java ...