Vue基础

2024-08-20 23:53:31 浏览数 (1)

前言

Vue 是一个框架,也是一个生态,其功能覆盖了大部分前端开发常见的需求。本文详细讲解了 Vue 的基本概念和使用方法。

一、Vue简介

①定义

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

② 核心特性

  • 响应式数据绑定:Vue 的数据对象会与视图自动绑定,当数据发生变化时,视图将自动更新。
  • 组件化:将应用程序拆分成独立的、可复用的组件,有助于提高代码的复用性和可维护性。
  • 虚拟 DOM:通过虚拟 DOM 的实现,Vue 提供了高效的 DOM 更新和渲染性能。

二、el:挂载点

el 是 Vue 实例的一个重要选项,用于指定 Vue 实例挂载的位置。挂载点可以是 HTML 元素的选择器(ID、类名等),Vue 将控制该元素及其子元素的内容。

【示例】

代码语言:html复制
<div id="app">
   <h1>{{ message }}</h1>
</div>

<script>
  var app = new Vue({
     el:"#app",
     data:{
       message:" 你好 Vue! "
     }
  })
</script>

这段代码中,我们将 el 设置为 '#app',则 Vue 实例将控制 ID 为 app 的元素。在该元素内,Vue 使用数据对象中的数据渲染视图。在 Vue 实例中,只有挂载点内的元素会受到 Vue 的影响,其他部分的 DOM 将不会被 Vue 管理。

三、data:数据对象

data 是 Vue 实例的一个选项,用于定义实例的响应式数据。data 对象中的属性可以在模板中使用 {{ }} 语法进行数据绑定,也可以在 JavaScript 代码中进行访问和修改。任何对 data 中数据的修改都会自动更新 DOM。

【示例】

代码语言:html复制
<div id="app">
   <h1>{{ message }}</h1>
</div>

<script>
  var app = new Vue({
     el:"#app",
     data:{
       message:" 你好 Vue! "
     }
  })
</script>

在这个例子中,页面中的<h1>标签会显示数据对象中 message 属性的值。当我们更改 data 中的 message 值时,视图会自动反映这一变化,体现了 Vue 的响应式特性。

四、第一个Vue程序

①导入开发版本的Vue.js

在使用 Vue.js 之前,我们需要通过 CDN 或本地文件导入 Vue 的 JavaScript 库。开发版本通常包含友好的错误提示和调试工具。

代码语言:html复制
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

②创建Vue实例对象

代码语言:html复制
<script>
  var app = new Vue({
    el:"#app",
    data:{
      message:" 你好 Vue! "
    }
   })
</script>

在这里,我们创建了一个新的 Vue 实例,并将其挂载到 ID 为 app 的 DOM 元素上。同时,我们定义了一个数据对象,其中有一个 message 属性,初始值为“你好 Vue!”。

③使用简洁的模板语法把数据渲染到页面上

在 Vue.js 中,插入语法 {{ }} 被称为“插值表达式”。它用于将数据绑定到 HTML 模板中的内容,从而动态地更新视图。

代码语言:html复制
<div id="app">
  <h1>{{ message }}</h1>
</div>

使用双大括号 {{ message }},我们能够在页面中显示 data 对象中的 message 值。当 message 的值发生变化时,视图会自动更新。

【示例】

代码语言:html复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Vue基础</title>
</head>

<body>
  <div id="app">
    <h1>{{ message }}</h1>
  </div>
  <!-- 开发环境版本,包含了有帮助的命令行警告 -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    var app = new Vue({
      el:"#app",
      data:{
        message:" 你好 Vue! "
      }
    })
  </script>
</body>

</html>

运行结果:

【注意事项】

注意点①:实例与容器是一一对应的关系

代码语言:html复制
<body>
  <div class="app">
    <h1>{{ message }}</h1>
  </div>
  <div class="app">
    <h1>{{ message }}</h1>
  </div>
  <!-- 开发环境版本,包含了有帮助的命令行警告 -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    var app = new Vue({
      el:".app",
      data:{
        message:" 你好 Vue! "
      }
    })
  </script>
</body>

运行结果:

【分析】

在这个示例中,有两个 div 元素具有相同的类名 class="app"。Vue 会找到页面上的所有 .app 元素,但只会与第一个匹配的元素进行绑定。因此只有第一个 div 元素会被 Vue 初始化,并且这个实例会将 data 中的 message 绑定到这个 h1 标签中。第二个 div 元素将不会被这个 Vue 实例控制,其中的 {{ message }} 不会被替换,仍然会在页面上显示为原始的字符串。

注意点②:不能挂载在 <html> <body>******上**

代码语言:html复制
<body id="body">
  {{ message }}
  <h2 id="app">
    {{ message }}
    <span> {{ message }} </span>
  </h2>
  <!-- 开发环境版本,包含了有帮助的命令行警告 -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    var app = new Vue({
      el:"#body",
      data:{
        message:" 你好 Vue! "
      }
    })
  </script>
</body>

</html>

运行结果:

【分析】

<html> 标签是整个 HTML 文档的根元素,<body>标签是页面内容的主要部分,将 Vue 或其他框架的实例挂载到<html><body>

上,会干扰页面的整体渲染循环和生命周期管理。

0 人点赞