【Vue.js基础】

news2024/9/25 8:23:07

  • Vue.js 快速上手指南
    • 1. Vue.js 简介
      • 1.1 Vue.js 的特点
    • 2. 学习 Vue 2 还是 Vue 3?
      • 2.1 Vue.js 下载
      • 2.2 在页面引入 Vue.js
    • 3. Vue.js 入门
      • 3.1 入门程序 - Hello World
      • 3.2 Class 与 Style 绑定
        • 3.2.1 Class 绑定
        • 3.2.2 Style 绑定
      • 3.3 v-text 和 v-html
      • 3.4 v-if 和 v-for
      • 3.5 v-model
      • 3.6 组件
      • 3.7 生命周期钩子
    • 4. 结论

Vue.js 快速上手指南

Vue.js 是一个轻量级、易于上手的前端框架,它提供了一套简洁的模板语法和响应式数据绑定机制,使得开发复杂的用户界面变得简单而高效。本文将带你快速了解 Vue.js 的基本概念、特性,并提供一些实用的代码示例。

1. Vue.js 简介

Vue.js(读音 /vjuː/,类似于 “view”)是一个用于构建用户界面的渐进式框架。它的核心库只关注视图层,易于上手,并且可以与第三方库或现有项目整合。Vue.js 的设计哲学是自底向上逐层应用,使得开发者可以根据项目需求灵活地选择使用它的哪一部分。

1.1 Vue.js 的特点

  • 简洁:HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动:自动追踪依赖的模板表达式和计算属性。
  • 组件化:用解耦、可复用的组件来构造界面。
  • 轻量:压缩后大约 33.46KB,无依赖。
  • 快速:精确有效的异步批量 DOM 更新。
  • 模块友好:通过 NPM 或 Yarn 安装,无缝融入你的工作流。

2. 学习 Vue 2 还是 Vue 3?

Vue 3 于 2020 年 9 月 19 日发布正式版,命名为“One Piece”。Vue 3 带来了更好的性能、更小的包体积、更好的 TypeScript 集成以及更优秀的 API 设计。从 2022 年 2 月 7 日起,Vue 3 成为默认安装版本。因此,现在学习 Vue 3 是非常合适的。

2.1 Vue.js 下载

你可以通过访问 Vue.js 的官方网站 Vue.js 来下载 Vue.js。下载后,你可以在页面中引入 Vue.js 文件。

2.2 在页面引入 Vue.js

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js 示例</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue!'
            }
        });
    </script>
</body>
</html>

3. Vue.js 入门

3.1 入门程序 - Hello World

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js Hello World</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: 'Hello World!'
            }
        });
    </script>
</body>
</html>

3.2 Class 与 Style 绑定

Vue.js 提供了 v-bind:classv-bind:style 指令来动态绑定 class 和 style。

3.2.1 Class 绑定
<!DOCTYPE html>
<html>
<head>
    <title>Vue.js Class 绑定</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div :class="{ active: isActive, 'text-danger': hasError }"></div>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                isActive: true,
                hasError: false
            }
        });
    </script>
</body>
</html>
3.2.2 Style 绑定
<!DOCTYPE html>
<html>
<head>
    <title>Vue.js Style 绑定</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div :style="styleObject"></div>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                styleObject: {
                    color: 'red',
                    fontSize: '20px'
                }
            }
        });
    </script>
</body>
</html>

3.3 v-text 和 v-html

  • v-text 用于更新元素的 textContent
  • v-html 用于输出真正的 HTML。
<!DOCTYPE html>
<html>
<head>
    <title>Vue.js v-text 和 v-html</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <p v-text="text"></p>
        <p v-html="html"></p>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                text: 'This is a text.',
                html: '<strong>This is HTML.</strong>'
            }
        });
    </script>
</body>
</html>

3.4 v-if 和 v-for

  • v-if 用于条件渲染。
  • v-for 用于列表渲染。
<!DOCTYPE html>
<html>
<head>
    <title>Vue.js v-if 和 v-for</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <p v-if="seen">Now you see me.</p>
        <ul>
            <li v-for="item in items" :key="item.id">
                {{ item.text }}
            </li>
        </ul>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                seen: true,
                items: [
                    { id: 1, text: 'Item 1' },
                    { id: 2, text: 'Item 2' }
                ]
            }
        });
    </script>
</body>
</html>

3.5 v-model

v-model 用于在表单 inputtextareaselect 元素上创建双向数据绑定。

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js v-model</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <input v-model="message" placeholder="Edit me">
        <p>Message is: {{ message }}</p>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: ''
            }
        });
    </script>
</body>
</html>

3.6 组件

Vue.js 支持组件化开发,可以创建可复用的组件。

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js 组件</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <person-component></person-component>
    </div>
    <script>
        Vue.component('person-component', {
            template: '<div>Person Component</div>'
        });

        var app = new Vue({
            el: '#app'
        });
    </script>
</body>
</html>

3.7 生命周期钩子

Vue 实例在创建过程中会经历多个阶段:创建、编译、挂载、更新和销毁。每个阶段都有相应的生命周期钩子。

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js 生命周期钩子</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <p>{{ message }}</p>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue!'
            },
            beforeCreate: function () {
                console.log('Before create');
            },
            created: function () {
                console.log('Created');
            },
            beforeMount: function () {
                console.log('Before mount');
            },
            mounted: function () {
                console.log('Mounted');
            },
            beforeUpdate: function () {
                console.log('Before update');
            },
            updated: function () {
                console.log('Updated');
            },
            beforeDestroy: function () {
                console.log('Before destroy');
            },
            destroyed: function () {
                console.log('Destroyed');
            }
        });
    </script>
</body>
</html>

4. 结论

提供了简洁的语法和高效的数据绑定机制,使得开发复杂的用户界面变得简单而高效。Vue.js 是一个现代化的前端框架,它通过简洁的设计和强大的功能,极大地简化了用户界面的开发过程。Vue.js 的核心优势在于其渐进式架构,使得开发者可以轻松地将其集成到现有的项目中,或者用于构建全新的单页应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读构建可扩展分布式系统:方法与实践14流处理系统

1. 流处理系统 1.1. 时间就是金钱 1.1.1. 从数据中提取有价值的知识和获得洞见的速度越快&#xff0c;就能越快地响应系统所观察的世界的变化 1.1.2. 信用卡欺诈检测 1.1.3. 网络安全中异常网络流量的捕获 1.1.4. 在支持GPS的驾驶应用程序中进行的实时路线规划 1.1.5. 社交…

函数计算 FC:首发 GPU 极速模式,更弹性、更降本

函数计算 FC 作为轻量灵活、事件驱动的全托管计算服务&#xff0c;一直以来以弹得更快、粒度更细、成本更低为广大开发者与企业客户所青睐。 2024 云栖大会上&#xff0c;函数计算 FC 为 AI 加码&#xff0c;首发 GPU 极速模式&#xff0c; 让 GPU 可以更弹性、更便宜。 阿里云…

【车联网安全】车端知识调研

一、CAN总线&#xff1a; 1、定义&#xff1a; CAN 总线相当于汽车的神经网络&#xff0c;连接车内各控制系统,其通信采用广播机制&#xff0c;各连接部件均可收发控制消息&#xff0c;通信效率高&#xff0c;可确保通信实时性。当前市场上的汽车至少拥有一个CAN网络&#xff0…

Java集合(下)

Map&#xff08;重要&#xff09; HashMap和Hashtable的区别 线程是否安全&#xff1a; HashMap 是非线程安全的&#xff0c;Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。&#xff08;如果你要保证线程安全的话就使用 ConcurrentHashMap …

也遇到过 PIL Image “image file is truncated“的问题

背景前言 属于活久见系列&#xff0c;最近工作上遇了该问题&#xff01; 背景&#xff1a;前端 APP使用 Android CameraX 的接口&#xff0c;拍摄并上传图片&#xff0c;然后 Python后端服务对图片裁剪与压缩处理。后端服务处理图片时有遇到image file is truncated的情况。还…

Spring AOP实现原理-动态代理

目录 代理的基础概念 示例1&#xff1a;静态代理&#xff08;场景&#xff1a;客户通过中介租房东的房子&#xff09; 示例2&#xff1a;JDK动态代理实现房东、中介出租房屋 示例3&#xff1a;CGLib动态代理实现房东出租房屋 示例4&#xff1a;观察Spring IOC容器中代理对象…

One-Class Classification: A Survey

I. INTRODUCTION 1.定义 OCC 是一种特殊的多类分类&#xff0c;训练数据仅来自单个正类。目标是学习表示和/或分类器&#xff0c;以便在推理过程中识别正类查询。 2.应用 异常图像检测、异常事件检测、生物识别&#xff08;活体检测、反诈骗&#xff09; 3.与其他领域的比…

Python连接Kafka收发数据等操作

目录 一、Kafka 二、发送端&#xff08;生产者&#xff09; 三、接收端&#xff08;消费者&#xff09; 四、其他操作 一、Kafka Apache Kafka 是一个开源流处理平台&#xff0c;由 LinkedIn 开发&#xff0c;并于 2011 年成为 Apache 软件基金会的一部分。Kafka 广泛用于构…

在Java中,关于final、static关键字与方法的重写和继承【易错点】

在Java中&#xff0c;关于final、static关键字与方法的重写和继承【易错点】 1.final方法不能被重写2.static方法不是重写&#xff0c;而是遮蔽3.final与static的组合4.final与继承5.static与继承 1.final方法不能被重写 如果父类中的方法被声明为final&#xff0c;那么这个方法…

开源音频处理项目推荐【持续更新】

Audacity 介绍&#xff1a;Audacity是一款功能强大的开源音频编辑软件&#xff0c;适用于多种操作系统&#xff0c;包括Windows、macOS和Linux。它支持多轨音频编辑、录制&#xff0c;并且提供了丰富的音频处理功能&#xff0c;如剪切、复制、粘贴、混音、降噪等 。Audacity的…

基于Python+flask+MySQL+HTML的全国范围水质分析预测系统,可视化用echarts,预测算法随机森林

1绪论 近年来&#xff0c;水质监测系统的进步显著&#xff0c;这在全球环保意识不断提升的背景下尤为明显。大量资源被投入到水质监测技术的研发和应用中&#xff0c;以不断优化监测效能。水资源的保护及健康环境的维护&#xff0c;这种趋势旨在提升人们生活质量&#xff0c;确…

微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑

人工智能经常胡言乱语&#xff0c;微软现在说它有办法解决这个问题&#xff0c;但我们有理由对此持怀疑态度。微软今天发布了一项名为"更正"&#xff08;Correction&#xff09;的服务&#xff0c;它可以自动修改人工智能生成的与事实不符的文本。Correction 首先会标…

华为认证HCIA篇--网络通信基础

大家好呀&#xff01;我是reload。今天来带大家学习一下华为认证ia篇的网络通信基础部分&#xff0c;偏重一些基础的认识和概念性的东西。如果对网络通信熟悉的小伙伴可以选择跳过&#xff0c;如果是新手或小白的话建议还是看一看&#xff0c;先有个印象&#xff0c;好为后续的…

8.隐私与安全 - 使用ChatGPT时的注意事项【8/10】

引言 在数字时代&#xff0c;隐私和安全已成为全球关注的焦点。随着技术的发展&#xff0c;个人信息和数据的收集、存储、处理和传输变得越来越普遍&#xff0c;这既带来了便利&#xff0c;也带来了风险。保护个人隐私和数据安全不仅是法律的要求&#xff0c;也是维护公众信任…

solidwork中查看装配体螺丝或零件

假设我的PETG打印件到了&#xff0c;想知道这个螺丝的型号&#xff0c;怎么办 解决办法&#xff1a; 第一步先看看有没有固定的字样 如果固定的话是不行的。需要这样做&#xff1a; 把这里给关了 接下来第二步&#xff0c;点击你想查看的螺丝 然后就会跳到零件图 可以看到直径…

Cloudflare为网站添加AI审计 可检查AI爬虫何时抓取和抓取频次以及直接屏蔽爬虫

网络服务提供商 Cloudflare 宣布即日起为所有网站 (包括免费托管的网站) 带来 AI 审计功能&#xff0c;该功能目前处于测试阶段&#xff0c;可以分析 AI 公司的爬虫和抓爬数据。新的 AI 审计工具 (Cloudflare AI Audit) 主要提供 AI 公司的爬虫何时到网站来抓取数据、抓取的数据…

Unity 热更新(HybridCLR+Addressable)-资源更新

七、资源更新 创建一个叫Aot的文件夹&#xff0c;用来存放不会热更新的资源 这个修改为第三个 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b8be5e6465184ad5ad6173c6870bfa06.png 这个是更新 在更新或者打包时遇到端口被占的报错&#xff0c;不用理会&#xf…

二、认识大模型

认识大模型 什么是大模型&#xff1f;发展趋势AGI是不是泡沫大模型对比【时效】大模型特点大模型技术原理向量化除了向量化&#xff0c;大模型还具有特征提取特点 总结结语 什么是大模型&#xff1f; 大模型是大规模语言模型&#xff08;Large Language Model&#xff09;的简…

mysql如何替换数据库所有表中某些字段含有的特定值

目录 背景查询所有表名查询表的所有字段过虑特征字段替换字段中含有的特定值 背景 公司的测试域名更换了&#xff0c;导致存放在数据库中的域名也要跟着替换&#xff0c;当然把域名存放在数据库表中是不科学的&#xff0c;不建议这样做&#xff0c;但公司的同事就这样做了&…

由动静压之比求马赫数的MATLAB函数

函数介绍 输入&#xff1a;动静压之比 p r e pre pre 输出&#xff1a;马赫数 M a c h Mach Mach 【注】仅适合亚音速的情况&#xff0c;如果动静压之比过大或过小&#xff0c;会有相应的提示 函数源代码 function [m] pre2mach(pre) m(5*(pre1).^0.2857-5).^0.5; if pre&l…