前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue基础

Vue基础

原创
作者头像
Heaven645
修改2024-08-20 23:53:31
1311
修改2024-08-20 23:53:31

前言

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>

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、Vue简介
  • 二、el:挂载点
  • 三、data:数据对象
  • 四、第一个Vue程序
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档