【Vue】快速入门:构建你的第一个Vue 3应用

文章目录

    • 一、Vue简介
    • 二、环境搭建
      • 1. 安装Node.js和npm
      • 2. 安装Vue CLI
    • 三、创建Vue项目
    • 四、项目结构介绍
    • 五、组件基础
      • 创建一个组件
      • 使用组件
    • 六、模板语法
      • 插值
      • 指令
        • v-bind
        • v-if
        • v-for
    • 七、事件处理
    • 八、状态管理
      • 安装Vuex
      • 创建Store
      • 使用Store
    • 九、路由基础
      • 安装Vue Router
      • 配置路由
      • 使用路由
    • 十、部署与发布
      • 构建项目
      • 部署到Netlify

在前端开发领域,Vue.js 是一个非常流行的框架。它以其简单易用、灵活性强以及高性能等特点,赢得了众多开发者的青睐。如果你是Vue的新手,这篇文章将帮助你快速上手,构建你的第一个Vue 3应用。

一、Vue简介

Vue.js 是一个渐进式JavaScript框架,主要用于构建用户界面。与其他大型框架不同,Vue 被设计为可以逐步采用的。其核心库只关注视图层,非常容易学习,并且可以与其他库或现有项目集成。

主要特点

  • 响应式数据绑定:使用双向数据绑定,使开发者能够轻松管理数据和视图的同步。
  • 组件化开发:通过组件化开发方式,提高代码的复用性和维护性。
  • 渐进式框架:可以根据项目需求,逐步引入Vue生态系统的其他功能。

二、环境搭建

在开始使用Vue之前,我们需要先搭建开发环境。

1. 安装Node.js和npm

Vue依赖于Node.js和npm(Node包管理器)。首先,需要在系统中安装它们。可以从Node.js官网下载并安装最新版本的Node.js,npm会自动随Node.js一起安装。

2. 安装Vue CLI

Vue CLI 是一个官方提供的标准化工具,可以快速搭建Vue项目。打开命令行,执行以下命令全局安装Vue CLI:

npm install -g @vue/cli

安装完成后,可以使用 vue --version 命令查看安装是否成功。

三、创建Vue项目

安装好Vue CLI后,我们可以创建一个新的Vue项目。执行以下命令:

vue create my-vue-app

在执行命令时,CLI会提示你选择一些配置选项。你可以选择默认配置,或者根据需求进行自定义配置。选择完成后,CLI会自动创建项目并安装依赖。

进入项目目录:

cd my-vue-app

启动开发服务器:

npm run serve

此时,打开浏览器并访问 http://localhost:8080,你将看到Vue项目的默认欢迎页面。

四、项目结构介绍

一个典型的Vue项目结构如下:

my-vue-app
├── node_modules
├── public
│   └── index.html
├── src
│   ├── assets
│   ├── components
│   │   └── HelloWorld.vue
│   ├── App.vue
│   └── main.js
├── .gitignore
├── babel.config.js
├── package.json
└── README.md

主要目录及文件:

  • public:静态文件目录,index.html 是项目入口文件。
  • src:源码目录,所有开发内容都在这里面。
    • assets:资源目录,可以放置图片等静态资源。
    • components:组件目录,所有的Vue组件都在这里面。
    • App.vue:根组件。
    • main.js:项目入口文件,初始化Vue实例。

五、组件基础

Vue的核心思想是通过组件化开发,每个组件可以看作是一个独立的模块。

创建一个组件

src/components 目录下新建一个 MyComponent.vue 文件,内容如下:

<template><div><h1>{{ message }}</h1></div>
</template><script>
export default {data() {return {message: 'Hello, Vue!'}}
}
</script><style scoped>
h1 {color: #42b983;
}
</style>

使用组件

App.vue 文件中引入并使用这个组件:

<template><div id="app"><MyComponent /></div>
</template><script>
import MyComponent from './components/MyComponent.vue'export default {components: {MyComponent}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

六、模板语法

Vue.js 使用一种基于HTML增强的模板语法,允许开发者声明式地将DOM绑定至底层数据。

插值

插值使用 {{}} 语法,可以将变量绑定到视图中:

<template><p>{{ message }}</p>
</template><script>
export default {data() {return {message: 'Hello, Vue!'}}
}
</script>

指令

Vue提供了一系列指令(Directives),用于在模板中执行常见的DOM操作。

v-bind

用于绑定HTML属性:

<template><img v-bind:src="imageSrc" />
</template><script>
export default {data() {return {imageSrc: 'path/to/image.jpg'}}
}
</script>
v-if

用于条件渲染:

<template><p v-if="isVisible">这是一段可见的文字</p>
</template><script>
export default {data() {return {isVisible: true}}
}
</script>
v-for

用于列表渲染:

<template><ul><li v-for="item in items" :key="item.id">{{ item.text }}</li></ul>
</template><script>
export default {data() {return {items: [{ id: 1, text: 'Item 1' },{ id: 2, text: 'Item 2' },{ id: 3, text: 'Item 3' }]}}
}
</script>

七、事件处理

Vue 允许在DOM元素上使用 v-on 指令来监听事件:

<template><button v-on:click="handleClick">点击我</button>
</template><script>
export default {methods: {handleClick() {alert('按钮被点击了!');}}
}
</script>

还可以使用 @ 符号来缩写 v-on 指令:

<template><button @click="handleClick">点击我</button>
</template>

八、状态管理

在复杂的应用中,组件之间的数据共享和状态管理变得尤为重要。Vue 提供了 Vuex 作为其官方的状态管理模式。

安装Vuex

npm install vuex@next --save

创建Store

src 目录下创建 store/index.js 文件:

import { createStore } from 'vuex'export default createStore({state: {count: 0},mutations: {increment(state) {state.count++}},actions: {increment(context) {context.commit('increment')}},getters: {count: state => state.count}
})

使用Store

main.js 文件中引入并使用Store:

import { createApp } from 'vue'
import App from './App.vue'
import store from './store'createApp(App).use(store).mount('#app')

在组件中访问和修改状态:

<template><div><p>{{ count }}</p><button @click="increment">增加</button></div>
</template><script>
import { mapState, mapActions } from 'vuex'export default {computed: {...mapState(['count'])},methods: {...mapActions(['increment'])}
}
</script>

九、路由基础

Vue Router 是Vue.js官方的路由管理器,适用于构建单页应用。

安装Vue Router

npm install vue-router@next

配置路由

src 目录下创建 router/index.js 文件:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
]const router = createRouter({history: createWebHistory(),routes
})export default router

使用路由

main.js 文件中引入并使用Router:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'createApp(App).use(router).mount('#app')

创建视图组件 src/views/Home.vuesrc/views/About.vue

<!-- Home.vue -->
<template><div><h1>Home</h1><p>欢迎来到首页</p></div>
</template>
<!-- About.vue -->
<template><div><h1>About</h1><p>关于我们</p></div>
</template>

App.vue 中使用路由视图:

<template><div id="app"><router-link to="/">Home</router-link><router-link to="/about">About</router-link><router-view></router-view></div>
</template>

十、部署与发布

在开发完成后,我们需要将项目部署到生产环境。

构建项目

执行以下命令进行构建:

npm run build

构建完成后,生成的文件将在 dist 目录中。你可以将该目录中的内容部署到任何静态文件服务器上,如Nginx、Apache等。

部署到Netlify

Netlify 是一个非常流行的静态网站托管服务。以下是将Vue项目部署到Netlify的步骤:

  1. 登录 Netlify 账户。
  2. 创建一个新的站点,选择Git仓库进行关联。
  3. 配置构建命令为 npm run build,发布目录为 dist
  4. 保存配置,点击部署。

至此,你的Vue应用就成功部署到了Netlify,并且可以通过提供的域名进行访问。


在这里插入图片描述

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

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

相关文章

科普文:详解23种设计模式

概叙 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结&#xff0c;其中最出名的当属 Gang of Four&#xff08;GoF&#xff09;的分类了&#xff0c;他们将设计模式分类为 23 种经典的模式&#xff0c;根据用途我们又可以分为三大类&#xff0c;分别为创建型模式…

《Python数据科学之四:建模与机器学习基础》

《Python数据科学之四&#xff1a;建模与机器学习基础》 在数据科学项目中&#xff0c;经过数据清洗、探索性数据分析&#xff08;EDA&#xff09;和数据可视化之后&#xff0c;下一个重要步骤是建立数据模型并应用机器学习技术。本文将深入探讨如何使用 Python 进行建模和机器…

Java异常抛出与处理方法

在Java编程中&#xff0c;异常处理是一个非常重要的部分。通过正确的异常处理&#xff0c;我们可以提高程序的健壮性和可靠性&#xff0c;避免程序在运行过程中出现意外的崩溃。本文将详细讲述Java异常的抛出与处理方法&#xff0c;并通过示例代码进行说明。 一、Java异常的分…

11 网络编程、反射

文章目录 网络编程1、网络的相关概念2、InetAddress 类3、Socket4、TCP 网络通信编程5、UDP 网络通信编程 反射1、反射机制2、Class 类3、类加载4、通过反射获取类的结构信息5、通过反射创建对象6、通过反射访问类中的成员 网络编程 1、网络的相关概念 网络通信 网络 ip 地…

安全防御:智能选路

目录 一、智能选路 1.1 就近选路 1.2 策略路由 1.3 虚拟系统---VRF 二、全局选路策略 1&#xff0c;基于链路带宽进行负载分担 2&#xff0c;基于链路质量进行负载分担 3&#xff0c;基于链路权重的负载分担 4&#xff0c;根据链路优先级的主备备份 DNS透明代理 一、…

Codeforces Round 895 (Div. 3)(A~G)

A. Two Vessels Problem - A - Codeforces 要我们找到最少操作多少次&#xff0c;a和b内的水一样多&#xff0c;从a拿出i克放到b中&#xff0c;之间的差距减少2i&#xff0c;数据范围不大&#xff0c;循环解决即可。 #include<iostream> #include<algorithm> #in…

推荐算法——MRR

定义&#xff1a; MRR计算的是第一个正确答案的排名的倒数&#xff0c;并对所有查询取平均值。它衡量了模型在排序结果中快速找到正确答案的能力。 其中&#xff1a; Q 是查询的总数。ranki​ 是第 i 个查询中第一个正确答案的排名&#xff08;位置&#xff09;。如果第一个正…

Django定时任务框架django-apscheduler的使用

1.安装库 pip install django-apscheduler 2.添加 install_app django_apscheduler 3.在app下添加一个task.py文件&#xff0c;用来实现具体的定时任务 task.pydef my_scheduled_job():print("这个任务每3秒执行一次", time.time()) 4.在app下创建一个manag…

我在哪里可以找到Vim速查表备忘单?

以下是一些适合初学者和高级用户的Vim速查表推荐&#xff1a; aral的Vim速查表 这是一个空间感强且易于理解的速查表&#xff0c;帮助你理解每个命令将跳转到的位置。aral的Vim速查表 Vim速查表 如果你需要一个全面且用户友好的速查表&#xff0c;可以访问Vim速查表。这个资源…

Redis 教程:从入门到入坑

目录 1. Redis 安装与启动1.1. 安装 Redis1.1.1. 在Linux上安装1.1.2. 在Windows上安装 1.2. 启动 Redis1.2.1. 在Linux上启动1.2.2. 在Windows上启动 1.3. 连接Redis1.3.1. 连接本地Redis1.3.2. 连接远程Redis1.3.2.1. 服务器开放端口1.3.2.2. 关闭防火墙1.3.2.3. 修改配置文件…

【QT开发(19)】2023-QT 5.14.2实现Android开发,使用新版SDK,试图支持 emulator -avd 虚拟机

之前的博客【QT开发&#xff08;17&#xff09;】2023-QT 5.14.2实现Android开发&#xff0c;SDK是24.x版本的&#xff0c;虚拟机是32位的&#xff0c;但是现在虚拟机是64位的了&#xff0c;需要升级SDK匹配虚拟机 文章目录 最后的效果1.1 下载最新版 SDK tools (仅限命令行工…

java学习--面向对象三大特征--继承

子类也可以有子类&#xff0c;ed就是子类的子类&#xff0c;也可以是a的子类 package com.extend_test01;public class Extends {public static void main(String[] args) {Pupil pupil new Pupil();pupil.setName("xiao");pupil.setScore(60);pupil.tesing();Syst…

线性回归中的平方损失和正规方程

损失函数 损失函数是用来衡量机器学习模型性能的一个函数。它通过计算模型的预测值与真实值之间的误差&#xff0c;用一个实数来表示这种误差。误差越小&#xff0c;说明模型的性能越好&#xff0c;预测越准确。在确定损失函数之后&#xff0c;通过优化算法求解损失函数的极小值…

初学者如何通过建立个人博客盈利

建立个人博客不仅能让你在网上表达自己&#xff0c;还能与他人建立联系。通过博客&#xff0c;可以创建自己的空间&#xff0c;分享想法和故事&#xff0c;并与有相似兴趣和经历的人交流。 本文将向你展示如何通过建立个人博客来实现盈利。你将学习如何选择博客主题、挑选合适…

阿里云短信PHP集成api类

无需安装sdk扩展包&#xff0c;直接引入类即可使用 V3版本请求体&签名机制:自研请求体和签名机制 - 阿里云SDK - 阿里云 模版内容&#xff1a; <?phpnamespace common\components;use common\constant\UserConst; use common\models\bee\SmsReferer; use common\mode…

Python成像质谱流式细胞术病理生理学

&#x1f3af;要点 &#x1f3af;急性呼吸窘迫综合征病理生理学 | &#x1f3af;获取高度多重空间分辨数据 | &#x1f3af;临床注释病理学景观 | &#x1f3af;使用医学院病理学系提供的组织样本 | &#x1f3af;设计抗体组捕获不同免疫和基质区室 | &#x1f3af;获取适合代…

EXCEL的自定义功能

一、Excel文件获取 OFFICE中导入文本文件&#xff0c;CSV&#xff08;分隔符通常是逗号&#xff09;和TXT&#xff08;分隔符通常是Tab键&#xff0c;可以用记事本打开查看分隔符&#xff09;进入单元格&#xff0c;数据——获取外部数据——自文本。 WPS中数据——获取数据——…

如何在Mac下修改VSCode侧边栏字体大小

在日常使用VSCode&#xff08;Visual Studio Code&#xff09;进行开发时&#xff0c;我们有时需要对IDE&#xff08;集成开发环境&#xff09;的界面进行一些个性化的调整&#xff0c;以提升我们的开发体验。 比如&#xff0c;有些用户可能会觉得VSCode的侧边栏字体大小不符…

JDK新特性(Lambda表达式,Stream流)

Lambda表达式&#xff1a; Lambda 表达式背后的思想是函数式编程&#xff08;Functional Programming&#xff09;思想。在传统的面向对象编程中&#xff0c;程序主要由对象和对象之间的交互&#xff08;方法调用&#xff09;构成&#xff1b;而在函数式编程中&#xff0c;重点…

打破运维“冷门槛“|暴雨液冷数据中心方案再升级

如果将数据比喻为驱动世界运转的新引擎&#xff0c;那数据中心便是为引擎提供源源不断动力的泵站。但随着泵站功率的日益增强&#xff0c;热浪成了不可避免的副产品。如何将数据热能转化为科技动能&#xff0c;是人工智能可持续发展的重要前提。 液冷技术&#xff0c;不仅可实现…