Skip to content

Angular问题

  1. 在Angular项目中,对代码可维护性的理解
  • HTML:组件化编程
  • CSS:使用预编译样式语言SCSS/Stylus/Less
  • JS:面向对象、组件化编程
  1. 在angular和vue.js中的不同点

  2. Vue.js和Angular中数据绑定(Model=>View)的实现原理有何不同?

  3. 把Vue.js提供的指令与Angular提供的指令进行对比

  4. 有哪些异步请求工具?各自的优缺点?

    • 原生XHR

      typescript
      let xhr = new XMLHttpReques()
      • 优点:
        浏览器支持的原生技术,兼容性好;基于回调方式处理响应;
      • 缺点:
    • jQuery.ajax()
      也是XHR,只是进一步封装

      • 优点:
        比原生用起来简单;基于回调方式处理响应;
      • 缺点:
    • Axios
      也是XHR,只是进一步封装

      • 优点:
        比原生简单;基于Promise处理响应;可以排队、并发、撤销;
    • Angular HttpClient
      也是XHR,只是进一步封装

      • 优点:
        比原生简单;基于“观察者模式”处理响应;可以排队、并非、撤销;
    • Fetch
      W3C提出的新技术,有望取代XHR

      • 优点:
        比XHR从根本上更加先进;天然基于Promise;
      • 缺点:
        目前浏览器还有兼容性问题;
  5. TypeScript Angular从V2.x开始使用TS编写,Vue.js从V3开始使用TS编写
    TS是由微软编写的一门基于JS又高于JS的编程语言
    浏览器不支持TS,其使用步骤:

    • 下载TS的编译器
      shell
      npm i -g typescript
    • 编写.ts文件,使用编译器转化为.js
      shell
      tsc hello.ts

TS的扩展特性:

  • TS是强类型语言--JS是弱类型语言 强类型语言的特点,函数返回值、形参、属性等都要指定类型

    typescript
    uname: string
    f1(n1: number): boolean {
      return true
    }

    常用数据类型关键字:string/number/boolean/any/number[]/Object/ Date/void

  • TS对属性和方法成员定义三种访问修饰符:

    • private
      只能在当前类中使用
    • protected
      被保护的,可以在本类内部以及子类内部直接访问
    • public
      公共成员或函数可以在本类内部以及外部使用
      提示:一般情况下,class内部属性不应该让外界随便访问,通常设置为private;函数一般允许调用,通常设置为public
  • 访问修饰符的特殊用法

    typescript
    //完整写法
    class Emp {
      private age: number;
      constructor(age) {
        this.age = age;
      }
    }
    // 简写
    class Emp {
      constructor(private age: number) {
        this.age = age;
      }
    }
  • 面向对象核心--类(class)和接口(interface)

    • 接口Interface,是一种特殊的类,规范“要求某个class必须具有xxx方法”
      typescript
      // 接口
      interface Runnable {
        // 接口中的方法没有主体
        start(): any;
        stop(): any;
      }
      // 实现类
      class Car implements Runnable {
        // 接口的实现者必须提供指定的方法,要有主体
        start() {
          
        }
        stop() {
          
        }
      }
    • 类Class
  • 装饰器

    注释 本文档涉及试验性的第 2 阶段装饰器实现。 自 Typescript 5.0 起,第 3 阶段装饰器支持可用。 请参阅: Typescript 5.0 中的装饰器

    随着 TypeScript 和 ES6 中类的引入,现在有一些场景需要额外的功能来支持注解或修改类和类成员。 装饰器提供了一种为类声明和成员添加注解和元编程语法的方法。
    手册地址 英文:https://www.typescriptlang.org/docs/handbook/decorators.html
    中文:https://www.tslang.cn/docs/handbook/decorators.html

  1. Angular模块中可以声明哪些对象? 组件、指令、管道、服务、模块、fn、value

  2. Angular和Vue.js中钩子函数有何不同?

  3. Angular组件中可以出现的内容 HTML标准元素/属性 组件对应的元素 Angular指令 模型数据/方法--Model 事件对象/子组件传递的数据--$event 模板变量 Angular元素识别符

  4. 练习 首页 商品列表 商品详情 用户登录post uname,upwd 用户注册post uname,upwd,upwdconfirm,email,phone

  5. 服务端渲染ssr

  6. angular打包成静态文件

  7. markdown目录

  8. Promise