前端_Vue_1.初识Vue
创始人
2024-03-20 17:10:17
0

文章目录

  • 一、前言
  • 二、开始
    • 1. 简介
      • 1.1. 什么是Vue?
      • 1.2. 渐进式框架
      • 1.3. 单文件组件
      • 1.4. API风格
        • 1.4.1. 选项式API(Options API)
        • 1.4.2. 组合式API(Composition API)
        • 1.4.3. 该选哪个?
    • 2. 快速上手(学前准备)
      • 2.1. 创建一个Vue应用


一、前言

以前写桌面程序比较多,最近发现客户现场有许多网页端的系统,客户说这种网页端系统非常方便,输个IP就能访问了。

确实,这是B/S相对于C/S一个很大的优势。
那好嘛,既然客户喜欢,也为了增加个人竞争力,我也得做起来,顺便扩充一下自己的技术栈。

但我已经很久没接触网页了,上次写的时候还是用最原始的HTML、CSS和JS。
于是,第一步我决定进行一个技术选型,了解一下现在有哪些较新的网页技术。通过一些招聘网、技术群、百度,我发现 VueReact ,这两种技术出现的比较多。所以我决定从这两者中进行选择。稍微了解了下这两者,发现大部分人认为两者是差不多的,学了一个后,再学另一个会很快。但是,相对来讲, Vue 可能更适合小白。既然如此,我就选择了从 Vue 开始。


二、开始

1. 简介

关于Vue是什么,特性、语法怎样,这些官方文档都有详细介绍。
它的网址是https://cn.vuejs.org/

本文主要摘取其中几个重点,然后谈谈自己的看法。

1.1. 什么是Vue?

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。

1.2. 渐进式框架

Vue是一个框架。Vue 的设计非常注重灵活性和“可以被逐步集成”这个特点。
根据你的需求场景,你可以用不同的方式使用 Vue:

  • 无需构建步骤,渐进式增强静态的 HTML
  • 在任何页面中作为 Web Components 嵌入
  • 单页应用 (SPA)
  • 全栈 / 服务端渲染 (SSR)
  • Jamstack / 静态站点生成 (SSG)
  • 开发桌面端、移动端、WebGL,甚至是命令行终端中的界面

为什么将 Vue 称为“渐进式框架”:它是一个可以与你共同成长、适应你不同需求的框架。

我的理解是非常适合边学边用的框架。

1.3. 单文件组件

在大多数使用了构建工具的Vue项目中,我们可以使用一种类似HTML格式的文件来书写Vue组件,它被称为单文件组件(也被称为 .vue ,英文Single-File Components,缩写为SFC)。顾名思义,Vue的单文件组件会将一个组件的逻辑(JavaScript),模板(HTML)和样式(CSS)封装在同一个文件里。

这个功能我挺感兴趣的,有点类似自定义控件的感觉,且都放在一个文件中,
可供重复使用。

1.4. API风格

Vue的组件可以按两种不同的风格书写:选项式API和组合式API。

1.4.1. 选项式API(Options API)

使用选项式API,我们可以用包含多个选项的对象来描述组件的逻辑,例如data、methods和mounted。选项所定义的属性都会暴露在函数内部的this上,它会指向当前的组件实例。


作为新手,我感觉这种选项式特别整洁清晰。
就像在代码中定义了各种下拉选项框,要添加属性,就往选项框中加项;要用某个属性或者方法,只需要选择对应的项即可。

1.4.2. 组合式API(Composition API)

通过组合式API,我们可以使用导入的API函数来描述组件逻辑。在单文件组件中,组合式API通常会与

虽然写法上也不复杂,但作为新手看起来,感觉比选项式的写法更"乱"一些。

1.4.3. 该选哪个?

两种API风格都能覆盖大部分应用场景。它们只是同一个底层系统所提供的两套不同的接口。实际上,选项式API是在组合式API的基础上实现的!(关于Vue的基础概念和知识在它们之间是通用的)

选项式API以"组件实例"的概念为中心(即上述例子中的this),对于有面向对象语言背景的用户来说,这通常与基于类的心智模型更为一致。同时,它将响应性相关的细节抽象出来,并强制按照选项来组织代码,对初学者而言更为友好。

组合式API的核心思想是直接在函数作用域内定义响应式状态变量,并将从多个函数中得到的状态组合起来处理复杂问题。这种形式更加自由,也需要您对Vue的响应式系统有更深的理解才能高效使用。相应的,它的灵活性也使得组织和重用逻辑的模式变得更加强大。

感觉组合式更接近原生JS。
选项式给你加了一层束缚,但是写起来更加整洁。
组合式需要你自己有一定的组织架构能力,不然写出来的代码很乱。

不过,官方给出了大致建议:

  • 由于大部分核心概念在两种风格之间是通用的,熟悉了一种风格后,能很快地理解另一种风格。所以推荐采用您最初更易接受的风格。
  • 在生产项目中使用:
    • 当不需要构建工具,或打算在低复杂度的场景中使用Vue,例如渐进增强的应用场景,推荐采用选项式API。
    • 当打算用Vue构建完整的单页应用,推荐采用组合式API + 单文件组件。

在学习阶段,不必固守一种风格。

2. 快速上手(学前准备)

这节其实已经具备一些开发元素了,但还没正式开始系统学习编程,只是按流程创建一个应用体验一下。
而且需要安装环境,所以其实还是一个学前准备的过程,我们需要对前置环境、配置项等都要有一定了解。

2.1. 创建一个Vue应用

⭐⭐⭐
💡前提条件

  • 熟悉命令行
  • 已安装16.0 或 更高版本的Node.js

那么第一个问题就来了,命令行的话,开发者肯定不陌生,不用多讲。所以重点是Node.js是什么?
先摘取百度百科的话:

Node.js发布于2009年5月,是一个基于Chrome V8引擎的JavaScript运行环境(runtime),使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

V8是Google开源的JavaScript和WebAssembly引擎,用C++编写。
简单谈谈引擎(engine),
生活中接触的引擎,有汽车引擎——发动机的核心部分,是为汽车提供动力的;游戏引擎,指软件套件、集成工具集,为游戏开发提供动力/便捷性。
在这里插入图片描述
可见引擎这个东西,很难说它是啥,但可以知道,它是一个复杂的集成体,并且有一定输入与输出。没错,这个概念放在软件中,那就是封装好的API——屏蔽了内部细节,只留下了输入输出接口。
这里的V8引擎是一个JavaScript引擎,它不是机器,而是执行 JavaScript 代码并使计算机能够在硬件级别执行特定任务的程序或解释器。
简化一下,JS引擎就是一段可以"读懂"JavaScript代码,并且给出代码运行结果的程序。
接下来通过几个问题,来进一步了解。
 
①既然有V8引擎,那肯定还有许多其它JS引擎吧?
确实,JS 最初就是被设计成在浏览器中运行,所有浏览器都配备了运行 JS的 JS引擎。如,Firefox 是由 Spidermonkey 提供动力,这里的Spidermonkey就是一个引擎,是C语言写的,而 Chrome 使用的是 V8 引擎,是C++写的。可以看到,尽管都是JS引擎,但它们底层语言不一定相同。
 
②为什么需要JS引擎呢?
计算机只能解释机器码,而 JS 是高级语言,计算机无法直接识别,所以我们需要一个解释器把 JS 翻译成机器码。而JS引擎就是充当这个解释器的。所以此时的JS引擎就是解释器
 
③说了这么多引擎相关的,并且JS引擎可以将JS翻译成机器码,那node.js又是什么,要它又有何用?
在回答这个问题之前,得先知道什么是运行时(runtime)环境。
运行时环境,从名字中也可以知道,是在代码运行时的环境,它会提供给代码一个环境(提供解释/编译、自动内存管理(GC)、对象模型、核心库等功能),以保证代码安全执行或掌管代码某些重要方面。
所以,node.js是JS运行时环境,意味着它提供给了JS各种功能。原来的JS只能游荡在浏览器代码中。而node.js的JS可以访问数据库、读写文件等等。
 
④node.js和V8的关系?
首先node.js使用了JS的语法(ECMAScript)。Ok,那很明显了,node.js自己无法在计算机上执行,需要JS引擎去翻译。这就是百科上说的node.js是基于V8引擎的,没有V8(或类似的JS引擎),node.js是无法执行的(即V8是JS的执行引擎)。


⭐有关V8和node.js的详细关系,可以看看这篇文,node.js 和 V8 是什么关系?
⭐有关JS引擎的详细信息,可以看看这个问题下的回答,JavaScript引擎、虚拟机、运行时环境是一回事儿吗?
 
Ok,看到这,相信您对node.js已经有一个大致了解了。它基于V8,并使JS更强大。

本节中,将介绍如何在本地搭建Vue单页应用。创建的项目将使用基于Vite的构建设置,并允许我们使用Vue的单文件组件(SFC)。

相关内容

热门资讯

原创 就... 【军武次位面】作者:乐乐 日前,美国“Military Watch”网站报道称,中国海军一艘“基洛”...
输球又输点!阿森纳赛后点球3-... 在刚刚结束的季前友谊赛中,阿森纳以2-3不敌比利亚雷亚尔,随后在点球大战中以3-4失利,令人意外的是...
8月1日起乌鲁木齐天山国际机场... 2025年8月1日起,新疆机场集团乌鲁木齐天山国际机场将迎来一项关键服务升级:所有国内出港航班值机手...
“我就在这儿坐着怎么了”,火车... 安全乘车,文明出行,是每一位公民应尽的责任和义务。近日,旅客李某持无座车票强占其他旅客座位,经乘警多...
黑龙江省制定出台20条政策措施... 近日,黑龙江制定出台支持高端智能农机装备产业高质量发展20条政策措施。旨在引导产学研用等各方用好国家...
债券利息收入增值税新规落地在即... 债券利息收入税收新规实施前夕,政策性银行密集发行金融债。 8月5日,中国债券信息网披露的信息显示,中...
静乐县公安局征集“六霸”及殡葬... 为深入开展群众身边不正之风和腐败问题集中整治,严厉打击“六霸”及殡葬等领域涉民生违法犯罪,现向社会各...
原创 欧... 欧洲媒体在8月5日的报道中提到,美国与欧洲似乎达成一致,准备联合打压俄罗斯石油的主要买家——中国和印...
普京与美特使聊了3小时之后,特... 来源:视觉中国 俄罗斯总统普京与美国特使威特科夫的会晤在持续近3小时后结束。 据新华社报道,俄总统助...