如何把一个vue组件改为ionic/angular组件
同是mvvm框架,他们之间是很相似的,如何你已经熟悉其中的一个,那么另一个也就基本上也就会的差不多了。
一、动态属性、值、事件绑定
vue中使用v-bind:或者之间分号:进行绑定
ng中左括号[]进行绑定
v-model –--->[(ngModel)]
@click ---->(click)
二、条件判断
v-if----->*ngIf
三、显示隐藏
v-show------> [hidden]
四、遍历一组数组进行渲染
- v-for="item in items" -----> *ngFor="let item of items"
- v-for="(item ,index)in items" -----> *ngFor="let item of dots; index as i"
- 。。。。
父子组件如何传值
1.父组件传值到子组件
- <app-header [msg]="msg"></app-header>
2. 子组件接受父组件的值
子组件里面通过 @Input 接收父组件传过来的数(需要先引入input模块)--相当于vue的props
3.子组件主动发送数据给父组件
引入Output,EventEmitter
- import {Output,EventEmitter} from "@angular/core";
- @Output() private childOuter = new EventEmitter();// 子组件主动发送数据this.childOuter.emit("我是子组件的数据");
4.在父组件中接收数据
// childOuter即是子组件发送的outer(类似Android中的广播)
- <app-index (childOuter)="getData($event)"></app-index> // ts文件中: getData(msg:string) { console.log(msg);// 接收到的数据 }
------相当于vue的子组件派发事件到父组件
5.父组件主动调用子组件
方法1
- // 引用子组件
<app-index #index></app-index>- // 使用子组件中的方法
<button (click)="index.childRun()">调用index中的方法</button>方法2
也可以在ts文件中调用:
- // 引用子组件 html文件
- <app-index #index></app-index> <button (click)="parentClick(index)">调用index中的方法</button>
// ts 文件
- parentClick(obj) { obj.childRun(); }
方法3
ViewChild主动获取数据 相当于vue 父组件里面对子组件加ref引用找到子组件调用其方法
ViewChild 是属性装饰器,用来从模板视图中获取匹配的元素
页面上#xx ts中@ViewChild(xx)
获取匹配的组件也可以是元素,
组件直接导入 @ViewChild(组件名)
元素页面上加#xx @ViewChild(xx)
参考 http://oomusou.io/angular/viewchild/
子组件里面监听父组件传递过来值的变化
onChanges钩子使用 相当于vue里面的watch
……
ionic/ng常用代码片段
- [src]="base64Image"
- //是否存在
- [hidden]="lastImage === null"
- //是否禁用
- [disabled]="lastImage === null"
- //文案显示互斥
- {{isFavourite ? '取消关注' : '关注'}}
- //元素显示互斥
- *ngIf="!isSelf" 渲染与否,切换的时候回重新渲染
- 如何已经有了class再追加class 而不是替换class
- <span class="dot" [ngClass]="{active: currentPageIndex === i }" *ngFor="let item of dots; index as i"></span>
- 替换class
- <span class="dot" [class]="{active: currentPageIndex === i }
- 或者 [hidden]=”!isSelf” 不重新渲染只显示隐藏 注意与v-show相反等同于
- v-show=’isSelf’
- Class显示互斥
- <span [ngClass]="{'active':sex===1}" (click)="switchSex(1)"></span><b (click)="switchSex(1)">男</b>
- <span [ngClass]="{'active':sex===0}" (click)="switchSex(0)"></span><b (click)="switchSex(0)">女</b>
- 根据布尔值绑定某一属性
- [color]="btnDisable===true?'light':''"
- 注意不能带花括号
- 下面2种都是不对的
- <button ion-button block [color]="{btnDisable===true?'light':''}">下一步</button>
- <button ion-button block [color]="{'light':btnDisable===true}">下一步</button>
如何把一个vue组件改为ionic/angular组件的更多相关文章
- 做了一个vue的同步tree 的npm组件包
前言:因为现成的tree组件没有找到.亦或是其依赖的其他东西太多,不太合适引入我们的项目,所以自己做了一个.大概样式: 在线例子: https://hamupp.github.io/t-vue-tre ...
- Laravel 项目中编写第一个 Vue 组件
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 R ...
- 手把手教你实现一个 Vue 进度条组件!
最近在个人的项目中,想对页面之间跳转的过程进行优化,想到了很多文档或 npm 等都用到的页面跳转进度条,于是便想自己去实现一个,特此记录. 来看下 npm 搜索组件时候的效果: so 下面咱们一起动手 ...
- 从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)
自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合 ...
- 如何写好一个vue组件,老夫的一年经验全在这了【转】 v-bind="$attrs" 和 v-on="$listeners"
如何写好一个vue组件,老夫的一年经验全在这了 一个适用性良好的组件,一种是可配置项很多,另一种就是容易覆写,从而扩展功能 Vue 组件的 API 来自三部分——prop.事件和插槽: prop 允许 ...
- 从零开始徒手撸一个vue的toast弹窗组件
相信普通的vue组件大家都会写,定义 -> 引入 -> 注册 -> 使用,行云流水,一气呵成,但是如果我们今天是要自定义一个弹窗组件呢? 首先,我们来分析一下弹窗组件的特性(需求): ...
- 【万字长文】从零配置一个vue组件库
简介 本文会从零开始配置一个monorepo类型的组件库,包括规范化配置.打包配置.组件库文档配置及开发一些提升效率的脚本等,monorepo 不熟悉的话这里一句话介绍一下,就是在一个git仓库里包含 ...
- 如何抽象一个 Vue 公共组件
之前一直想写一篇关于抽象 Vue 组件的随笔,无奈一直没想到好的例子.恰巧最近为公司项目做了一个数字键盘的组件,于是就以这个为例聊聊如何抽象 Vue 的组件. 先上 Demo 与 源码.(demo最好 ...
- 一个 Vue 的滑动按钮组件
git 地址:https://github.com/SyMind/vue-sliding-button vue-better-slider 一个 Vue 的滑动按钮组件,有关滑动方面的处理借鉴 bet ...
随机推荐
- 解决ajax跨域的办法,代理,cors,jsonp
1.使用php做代理去请求第三方api接口 php是可以跨域的,我们利用ajax请求本域名中的php文件,php再去请求第三方接口文件,从而达到跨域目的. php做代理请求: ajax请求本域名php ...
- 【转】mac环境下Android 反编译
一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes.dex文件转化为.jar文件. jd ...
- Docker设置http代理
在国内由于不可描述的原因无法访问Google等网站,但是作为一枚挨踢人士,无法使用Google搜索,在使用Ctrl + C技能时是抓狂的:特别是当下Docker.Kubernetes等容器技术火热的时 ...
- 微信支付现金红包接口应用实例代码说明和DEMO详解,适合用来做微信红包营销活动、吸粉利器
本文详细介绍微信红包开发的接口,商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,领取到红包后,用户的资金直接进入微信零钱.后面带有具体调用php实例 总结一下:需要注意的是PEM秘 ...
- HttpWebRequest简单使用
HttpWebRequest简单使用 摘要 HttpWebRequest类对WebRequest中定义的属性和方法提供支持,也对使用户能够直接与使用HTTP的服务器交互的附加属性和方法提供支持. 创 ...
- 局域网安全-生成树攻击-ARP攻击-MAC攻击-VTP攻击-动态VLAN的攻击
一.MAC layer attacks 1.CAM表的OVERLOAD 第三方设备不断发送变化的MAC地址,填满CAM表,对于后来合法的MAC地址不能学习到从而泛洪,这时攻击者将学习到合法者的数据包. ...
- 20172328 暑假作业 之 实现安卓小程序Enjoy-all
20172328 暑假作业 之 实现安卓小程序Enjoy-all 项目介绍 项目名称: Enjoy - all 项目简介: 本项目基于Java语言和Anroid Studio软件,实现了简单的冒泡.屏 ...
- 求n到m之间素数的个数
Description 求n到m之间素数的个数 Input 多组测试数据,每组先输入一个整数t,表示组数,然后每组输入2个正整数n和m,(1 <= n <= m <= 10000) ...
- Mac_安装Homebrew以及Maven
Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...
- [LeetCode] Implement Rand10() Using Rand7() 使用Rand7()来实现Rand10()
Given a function rand7 which generates a uniform random integer in the range 1 to 7, write a functio ...