在学习Angular的同时与Vue.js进行比较 -环境搭建篇- 第一部分

最近我在使用Vue进行开发和运营项目,但是最近我遇到了使用Angular的情况,所以我想整理一下并与大家共享一些相关信息。

我想要降低学习Angular的成本。

通过与我在实际工作中使用的Vue.js进行比较,我将尽力以简单明了的方式解释Angular被认为学习成本高的原因,并描述其结构。

暫時決定先動手動手,嘗試用Vue.js和Angular進行模擬製作,因為創造的過程是最高效的記憶方法之一。

请注意,这个课程需要具备Vue.js或SPA开发经验的学员。


image.png

命令行工具

在Vue.js中,有一个名为Vue CLI的命令行工具
在Angular中,有一个名为Angular CLI的命令行工具。

在命令行工具中,有一个好处是可以省去一些常用的配置,比如创建目录和设置webpack等,这在SPA开发中经常使用。

首先,无论如何,我们先安装命令行工具。


npm install -g @vue/cli
# OR
yarn global add @vue/cli
npm install -g @angular/cli
# OR
yarn global add @angular/cli

使用Vue CLI创建项目。

vue create [任意の名前(フォルダ名)]
? Please pick a preset: 
  express (router, vuex, dart-sass, babel, eslint) 
  default (babel, eslint) 
❯ Manually select features 

express的配置包括了vuex、router、sass、babel和lint。
default的配置是最小单位的,包括了babel和lint。
Manually select feature是由开发者自己决定安装所需环境。

本次我们将使用手动选择功能来构建环境。

? Check the features needed for your project: 
 ◉ Babel
 ◯ TypeScript
 ◯ Progressive Web App (PWA) Support
 ◉ Router
 ◉ Vuex
❯◉ CSS Pre-processors
 ◉ Linter / Formatter
 ◯ Unit Testing
 ◯ E2E Testing
    • 新しいESを利用したいのでBabel

 

    • ページ遷移するページを作成するのでRouter

 

    • 共通データを保持するためのVuex

 

    jsのミスタイプを表示してくれるLinter

请用空格键选择上述的四个项目,然后按下回车键确定。

? Use history mode for router? (Requires proper server setup for index fallback 
in production) (Y/n) 

不使用历史模式时,URL带有标签会感觉非常不舒服,因此选择启用历史模式,并输入Y后按下回车。

? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported 
by default): (Use arrow keys)
❯ Sass/SCSS (with dart-sass) 
  Sass/SCSS (with node-sass) 
  Less 
  Stylus 

下一步,我会问你要使用哪种CSS预处理器,我通常使用Sass/SCSS(dart-sass)。

有Dart Sass和Node Sass等选项,但我不太了解它们之间的区别,而且我使用Dart Sass时几乎没有什么问题需要担心,所以不会去考虑这个。

虽然可以选择Less或Stylus,但现在什么都不考虑(脑死)。

? Pick a linter / formatter config: (Use arrow keys)
❯ ESLint with error prevention only 
  ESLint + Airbnb config 
  ESLint + Standard config 
  ESLint + Prettier 

只要能读懂错误的描述,连Airbnb和标准规范的设置都可以不必考虑,选择最顶部的选项。

? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i
> to invert selection)
❯◉ Lint on save
 ◯ Lint and fix on commit

我想选择上选项,因为我想要在文件保存时检查错误。

? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? (Use arro
w keys)
❯ In dedicated config files 
  In package.json 

由于在package.json中写入所有内容会变得很难阅读,因此我们选择在各自的配置文件中进行描述。

? Save this as a preset for future projects?(y/N)

我不太明白问题的意图,但是选择No后,router.js文件没有生成。所以这次我选择了Yes并按下Enter键。

总之,Vue.js的开发环境已经完成了。

使用Angular CLI创建项目。

ng new --minimal=true --skip-Tests=true [任意の名前(フォルダ名)]
# スタンダードなプロジェクト作成 ng new [任意の名前(フォルダ名)]

由于这次测试说明太麻烦了,我想跳过测试文件。请设置不创建测试工具和测试文件。

オプション動作デフォルト値エイリアス–skipTests=true/falsetrueの場合、新しいプロジェクトの「spec.ts」テストファイルは生成されませんデフォルト: falseエイリアス: -S–minimal=true/falsetrueの場合、テストフレームワークなしでプロジェクトを作成します。(学習目的のみに使用します。)デフォルト: false
? Would you like to add Angular routing? (y/N) 

想要制作一个类似Vue.js的页面跳转网站,所以选择y。

? Which stylesheet format would you like to use? (Use arrow keys)
  CSS 
❯ SCSS   [ https://sass-lang.com/documentation/syntax#scss                ] 
  Sass   [ https://sass-lang.com/documentation/syntax#the-indented-syntax ] 
  Less   [ http://lesscss.org                                             ] 
  Stylus [ http://stylus-lang.com                                         ] 

因为SCSS易于使用,所以选择使用SCSS。

这就是结束了

Angular CLI生成

Angular CLI和Vue CLI之间的主要区别在于

相较于只能使用Vue CLI进行环境搭建的能力,
我认为Angular CLI提供了更丰富的命令,可以通过命令来进行开发所需的配置等等。
(这是我个人的观点)

我想介绍一下在这些中最常被使用的ng generate功能。

ng generate命令可以支持生成开发所需的文件。

比如说,如果在Vue中新建了一个组件,就需要复制下面这个Vue文件,并对文件名和name进行更改。

虽然不是太麻烦,但却相当繁琐。

<template>
  <div>
    <p>Template</p>
  </div>
</template>

<script>
export default {
  name: 'Template'
}
</script>

<style scoped lang="scss">

</style>

Angular CLI可以使用ng generate命令来生成文件的模板,其中包括文件的生成等功能。

ng generate [生成したい種類] [ファイルパス/ファイル名]

试试生成一个名为sample.component.ts的Angular组件文件。

ng generate component sample

在不指定文件路径的情况下,执行后可以确认在src/app目录下生成了文件。

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-sample',
  templateUrl: './sample.component.html',
  styleUrls: ['./sample.component.scss']
})
export class SampleComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

查看内容后,发现有一个包含了最小必要代码的模板可供使用。

这次使用了ng generate component,但除此之外还可以生成其他各种类型的文件,所以如果事先阅读下面的URL,可能会对开发有所帮助。

Angular CLI – 生成

总结

与Vue CLI相比,Angular CLI让我感觉需要进行较少的配置。
由于Vue.js可以安装各种不同的包,所以似乎可以进行更复杂的配置。

下一步,我打算比较目录和大致结构。

在学习Angular的过程中与Vue.js进行比较 – 配置篇 – 第二部分。

广告
将在 10 秒后关闭
bannerAds