|
移动端应用的种类: (1)Native App: 原生App,指使用Java/Kotlin为Android. OC/Swift 为ios开发应用程序,直接运行与手机操作系统上 优势:运行速度快 劣势:两套代码不跨平台,且必须下载
(2)Web App: 使用HTML/CSS/JS技术编写类似原生App的应用,代码运行于手机中的浏览器(如WebView)中, 优势:无需提前下载、一套代码到处运行 劣势: 运行效率低、不能访问手机底层系统服务
(3)Hybrid App: 使用HTML/CSS/JS技术编写类似原生App的应用,并混入部分Java/OC等驱动代码以调用系统底层服务,最终运行于操作系统中 优势:结合了前两种的优势
(4)Dart/ Flutter一 代表着未来
6.基于Angular的UI组件库
Angular相关的组件库: (1)lonic (2)Material (3)Zorro (4)Zorro Mobile
lonic概述: https://ionicframework.com/
lonic是一个基于HTML/CSS/JS技术的,创建混合App的UI组件库技术。底层可以不依赖于任何框架(弓|入.css和.js就可以运行),也可以 与Vue.js、React、 Angular 框架整合在一起,作为它们的第三方组件库使用。
lonic CLI = Angular CLI + UIModule +移动端打包工具...
移动端打包工具
md: Meterial Design Android Studio ios XCode HBuilder:可以打包Android/iOs安装程序(国内)
使用方法:
(1)下载全局脚手架工具 npm i -g ionic
(npm config set registry https://registry.npm.taobao.org/)
(2)运行脚手架工具在当前目录下创建一个项目
ionic start 项目名 blank ionic start 项目名 tabs ionic start 项目名 sidemenu
创建好项目后会自动调用npm i 下载所依赖的第三方模块 (3)进入项目目录,运行它 cd 项目名 npm start
(4)启动客户端浏览器,访问开发服务器 用(手机)浏览器访问项目
http://127.0.0.1:4200
lonic的九种主题色----color: primary(蓝白)、secondary(青白)、tertiary(偏紫白)、danger(红白)、warn(黄白)、 success(绿白)、dark(黑白)、 medium(灰白). light(亮色)
2.lonic App的页面布局 <ion-app>
ion-header > ion-toolbar > ion-title >标题 ion-content[padding] >内容 ion-footer > ion-toolbar > ion-title >内容
</ion-app>
------------------------------------------------------------
lonic主体中的“栅格布局系统”一仿 Bootstrap3: <ion-grid> < ion-row> <ion-col no-padding size="宽" offset="偏移" push="右推" pull="左拉"> </ion-col> </ion-row> </ion-grid>
Module:模块 Model:模型,MVVM中第一个M Modal:模态对话框
3.lonic提供预定义组件 Icon:图标<ion-icon name="">
Button:按钮<ion-button> Badge:徽章<ion-badge> Card:卡片ion-card> ion-card-header + ion-card-content Alert:警告框,必须使用AlertController创建并呈现
this.alertController.create({ }).then((d)= >{d.present()})
Modal:模态框,必须使用ModalController创建并呈现
this.modalController.create({ }).then((d)= >{d.present()})
Item:列表项
<ion-item detail href= "#"> <ion-avatar slot= "start"> img </ion-avatar> < ion-thumbnail> img </ion-thumbnail> <ion-label> </ion-label> < ion-button slot= "end"> < /ion-item>
卡片:< ion-card> ion-card-header + ion-card-content< /ion-card>
List:列表
InfiniteScroll:无穷滚动组件,滚动到底部时加载更多内容
<ion-infinite-scroll threshold = "20px" (ionInfinite)= "loadData" > <ion-infinite-scroll-content loadingSpinner="" loadingText="> </ ion-infinite-scroll>
Refresher:刷新器,从顶部显示加载更多内容
搜索条: <ion-searchbar> 滑动轮播: <ion-slides> <ion-slide> </ion-slide> </ion-slides> 标签页: <ion-tabs> </ion-tabs>
2.Angular & lonic阶段项目 实现步骤: (1)创建空白的lonic项目模板 (2)创建项目必需的组件
ng g component main 盛放ion-tabs组件的页面 ng g component index 首页(1F/2F/3F) ng g component product-list 商品列表页 ng g component cart 购物车页 ng g component login 登录页
ng g component not-found 404页 ng g component product-detail 商品详情页
确保每个组件都在AppModule中进行了声明: declarations:[ ] (3)修改根组件模板AppComponent.html,使用
<ion-app>
<ion-router-outlet></ion-router-outlet>
<app-main> </app-main>
</ion-app>
(4)编辑main.component.html,声明页签组件 <ion-tabs>
<ion-tab-bar>
<ion-tab-button>图标+文字</ion-tab-button>
</ion-tab-bar>
</ion-tabs>
(5)编辑路由配置模块文件app-routing.module.ts,声明并注册路由词典 const routes = [ {path: ", component: IndexComponent}, {path: 'product-list', component: ProductListComponent},
{path: 'product-detail/:pid', component: ProductDetailComponent},
{path: 'cart', component: CartComponent}, {path: 'login', component: LoginComponent}, {path: **',component: NotFoundComponent}, ]; 此时可以使用客户端进行测试,访问页签中的每个按钮,可以在路由出口显示对应路由组件页面
--------------------------------------------------------------------------------------------
(6)开始修改主页组件模板: index.component.html, 添加页面内容
<ion-header> img + ion-searchbar </ion-header> < ion-content> slides + ion-item +ion-grid>ion-card + ... < /ion-content>
-------------------------------------------------------------------------------------------
(7)修改商品列表页模板: product-list.component.html, 添加页面内容 <ion-header> ion-button + ion-searchbar </ion-header> <ion-content> ion-card> ion-item+ ion-infinite-scroll + ion-text </ion-content> 模型数据: productList、 pno、 hasMore、 http
------------------------------------------------------------------------------------------
|
解释跨域请求:
跨域请求是浏览器的一种安全策略,浏览器禁止xml访问另外一个不同域下的资源,可以是不同协议、不同端口、不同域名,只要有一点不一样就算跨域,出于安全考虑不允许使用数据
跨域请求解决方案: jsonp方案 :缺点是只能发get请求、效率偏低在dom树上动态创建script
cors方案:只适合前后端是一家的情况
服务器端代理
|
HTML元素属性(Attribute)和JS DOM对象的属性(Property) ①元素属性和对象属性同名: <img src= " Xxx"> document.createElement('img').src= "xx" ②元素属性和对象属性不同名: <input class="box" tabindex="3" > document.createElement('box' ).className= "box" document.createElement( box').tabIndex= "3" ③元素属性在对象属性不存在:
<td colspan="3"> document.createElement('td").colSpan= "box" ④对象属性在元素属性中不存在 document.createElement('div').innerHTML = 'abcd' <div innerHTML="">
自定义一个管道内俩种模式
|