自学前端开发 - VUE 框架 (一): 基础、模板语法、响应式基础、Class 与 Style 的绑定、渲染

@[TOC](自学前端开发 - VUE 框架 (一) 基础、模板语法、响应式基础、Class 与 Style 的绑定、渲染)
前端有一些比较流行的框架,例如 react.js、angular.js、jQuery 等,Vue.js 也是其中之一。Vue是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助程序员高效地开发用户界面。

vue 和 jQuery 除了完成特效方面稍微重叠,其他方面的定位是不同的:jQuery 主要定位是获取元素,Vue 的定位是方便操作及控制数据。

Vue.js 官网
Vue 官方文档

vue 学习之前

在学习 vue 之前,有一些准备工作:

  • vue 的环境
    主要是 vue 的使用方式
  • vue 的使用风格
    vue 本身有很多风格可以使用,例如传统 html 文件和单文件组件、选项式API和组合式API等

vue 的使用环境

vue 支持 npm 引入和文件(CDN)引入。

npm 引入

使用 npm 工具执行命令

npm init vue@latest

这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。之后将会看到一些诸如 TypeScript 和测试支持之类的可选功能提示。如果不确定是否要开启某个功能,你可以直接按下回车键选择 No。在项目被创建后,通过以下步骤安装依赖并启动开发服务器:

cd <your-project-name>
npm install
npm run dev

现在应该已经运行起来了你的第一个 Vue 项目!请注意,生成的项目中的示例组件使用的是组合式 API 和

文件引入

可以使用 CDN 引入

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

这里使用了 unpkg,也可以使用任何提供 npm 包服务的 CDN,例如 jsdelivr 或 cdnjs。当然,也可以下载此文件并自行提供服务。

通过 CDN 使用 Vue 时,不涉及“构建步骤”。这使得设置更加简单,并且可以用于增强静态的 HTML 或与后端框架集成。但是将无法使用单文件组件 (SFC) 语法。

使用文件引入,也有几种使用版本:

  1. 全局构建版本:该版本的所有顶层 API 都以属性的形式暴露在了全局的 Vue 对象上。
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

<div id="app">{
  { message }}</div>

<script>
  const {
      createApp } = Vue
  
  createApp({
     
    data() {
     
      return {
     
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>
<!-- 脚本部分也可以写成 -->
<!-- 	<script>
		Vue.createApp({
			data() {
				return {
					message: 'Hello Vue!'
				}
			}
		}).mount('#app')
	</script> -->
  1. 使用ES模块版本:注意使用 <script type="module">,且导入的 CDN 指向的是 ES 模块构建版本
<div id="app">{
  { message }}</div>

<script type="module">
  import {
      createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
  
  createApp({
     
    data() {
     
      return {
     
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>
  1. 使用导入映射表(Import Maps)版本
<script type="importmap">
  {
     
    "imports": {
     
      "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
    }
  }
</script>

<div id="app">{
  { message }}</div>

<script type="module">
  import {
      createApp } from 'vue'

  createApp({
     
    data() {
     
      return {
     
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>

vue 的使用风格

vue 的文件格式

vue 可以在 html 中直接使用,或创建为单文件组件使用。在 html 中使用类似于普通的 js 或 jQuery 之类的使用方式。在大多数启用了构建工具的 Vue 项目中,可以使用一种类似 HTML 格式的文件来书写 Vue 组件,它被称为单文件组件。 顾名思义,Vue 的单文件组件会将一个组件的逻辑 (JavaScript),模板 (HTML) 和样式 (CSS) 封装在同一个文件里。官方推荐使用这种方法来编写模块化的组件。

在初学阶段,只学习 html 使用方式。

vue 的 api 代码风格

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

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

通过组合式 API,可以使用导入的 API 函数来描述组件逻辑。在单文件组件中,组合式 API 通常会与 <script setup> 搭配使用。这个 setup attribute 是一个标识,告诉 Vue 需要在编译时进行一些处理,让我们可以更简洁地使用组合式 API。比如,<script setup> 中的导入和顶层变量/函数都能够在模板中直接使用。

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

在简单学习阶段,将使用选项式API风格。

vue 开发辅助工具

官方推荐安装浏览器开发者插件,使我们可以浏览一个 Vue 应用的组件树,查看各个组件的状态,追踪状态管理的事件,还可以进行组件性能分析。

下载并让浏览器加载插件:vuejs-devtools

vue 基础

vue.js 的 M-V-VM 架构

和 MVC、MTV 架构类似,vue 采用了 MVVM(Model-View-ViewModel) 架构思想,它是一种基于前端开发的架构模式。

  • Model : 指的是 vue 对象里的 data 属性里的数据,将会渲染至页面中去。
  • View : 指的是 vue 对象要渲染的HTML页面,也称为“视图模板”。
  • ViewModel : 指的是编写代码时的创建的应用实例对象,它是 vue.js 的核心,负责监控、连接 view 和 model,保证视图和数据的一致性。

创建 vue 应用

应用实例

每个 Vue 应用都是通过 createApp 函数创建一个新的 应用实例

import {
    createApp } from 'vue'

const app = createApp({
   
  /* 根组件选项 */
})

根组件

我们传入 createApp 的对象实际上是一个组件,每个应用都需要一个**“根组件”,其他组件将作为其子组件**。根组件可以使用根组件模板或自定义的单文件组件。使用根组件模板时,Vue 将自动使用容器的 innerHTML 作为模板。

import {
    createApp } from 'vue'

const app = createApp({
   
	/* 根组件选项 */
	data(){
   
  		return {
   
  			count: 0
  		}
	}
})

data 组件可以使用数据填充模板。

挂载应用

应用实例必须在调用了 .mount() 方法后才会渲染出来。该方法接收一个“容器”参数,可以是一个实际的 DOM 元素或是一个 CSS 选择器字符串:

<div id="app"></div>
app.mount('#app')

应用根组件的内容将会被渲染在容器元素里面。容器元素自己将不会被视为应用的一部分。.mount() 方法应该始终在整个应用配置和资源注册完成后被调用。同时请注意,不同于其他资源注册方法,它的返回值是根组件实例而非应用实例。

应用配置

应用实例会暴露一个 .config 对象允许我们配置一些应用级的选项,例如定义一个应用级的错误处理器,它将捕获所有由子组件上抛而未被处理的错误:

app.config.errorHandler = (err) => {
   
  /* 处理错误 */
}

多个应用实例

应用实例并不只限于一个。createApp API 允许你在同一个页面中创建多个共存的 Vue 应用,而且每个应用都拥有自己的用于配置和全局资源的作用域。

const app1 = createApp({
   
  /* ... */
})
app1.mount('#container-1')

const app2 = createApp({
   
  /* ... */
})
app2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值