typescript部分
export关键字作用:可以让定义的类型在全局范围内能被访问到。
this关键字的指向:
1,一般情况下,this指向的是本对象,即用“{}”括起来的内容(函数的“{}”除外)。
2,对于函数嵌套情况,外层函数就指向本对象,而内层函数中的this可能指向其调用者,甚至不确定调用者,
因此若内层函数想使用外层函数中的变量,直接使用,无需加this,若要使用对象中的变量,则需要使用箭头函数“()=>”。any可用于声明某个不确定数据类型的变量。
加“?”的变量在初始化的不用赋初值
interface Shape {
name: any;
width: number;
height: number;
color?: string;
}
function area(shape : Shape) {
var area = shape.width * shape.height;
return "I'm " + shape.name + " with area " + area + " cm squared";
}
console.log( area( {name: "rectangle", width: 30, height: 15} ) );
console.log( area( {name: "square", width: 30, height: 30, color: "blue"} ) );
- interface和class的区别(补充):
1,因为typescript是JavaScript的超级,为了保证兼容,interface就完全变成了js,没有类的痕迹,而class编译后还会保留有class的标记
2,通常interface只声明变量,不包括方法(这一点目前不是很确定)
angular部分
-
对于angular三大核心的理解:
1, 组件(component)。 angular的页面全由各部分组件(component)构成,组件可能包括.scss,.html,.ts文件。即组件并不是某一种却定的文件类型,而是
实现某一个页面的各种类型的文件集合。组件即为页面服务。2,模块(module)。菜鸟教程看的有点迷,等待老师详讲。
3,路由(router)。主要用于前端确定浏览器输入的地址由哪个组件(component)处理。
angular框架流程:
- 浏览器地址 -> 路由(router)-> 组件(component)-> 服务(service)
- 其中组件中的.html文件我们通常称之为模板,用于确定要显示的内容;对于上述流程中,还会有一个derictive指令,用于控制模板内容的显示方式
浏览器显示内容过程:
index.html -> <app-root></app-root>进行页面内容替换 -> 默认进入app.component.html页面-> <router-outlet></router-outlet>路由插槽 -> 插入子页面内容。
该过程中自始至终都只是替换了index.html文件中的内容。
前端页面获取并显示数据具体工作流程:
定义model类->写对应的service文件->组件中的component.ts文件->component.html文件
model类:与后端的model相对应,或与数据库的表相对应,因为只包含成员变量,因此通常用interface定义,如下:
export interface Test {
name: string;
body: string;
}
service:与后端的controller相对应,负责向后端请求数据,以及向组件传递后端返回的数据。
component.ts:获取service传回来的数据,并对它进行简单的处理,然后赋值给自己的成员变量,便于component.html模板文件获取要展示的内容。
component.html:组件中的该部分内容用于页面展示,可用“{{}}”获取component.ts传过来的对象。