【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://xiahunao.cn/news/3249112.html

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

相关文章

PiT : 基于池化层Pooling layer的Vision Transformer

CNN的降维原理;随着深度的增加,传统CNN的通道维数增加,空间维数减少。经验表明,这样的空间降维对变压器结构也是有益的,并在原有的ViT模型的基础上提出了一种新的基于池的视觉变压器(PiT)。 1. 引言 ViT与卷积神经网络(CNN)有很大的不同。将输入图像分成1616小块馈送到变压…

力扣刷题之2959.关闭分部的可行集合数目

题干描述 一个公司在全国有 n 个分部&#xff0c;它们之间有的有道路连接。一开始&#xff0c;所有分部通过这些道路两两之间互相可以到达。 公司意识到在分部之间旅行花费了太多时间&#xff0c;所以它们决定关闭一些分部&#xff08;也可能不关闭任何分部&#xff09;&…

mysql group_concat()函数、行转列函数

文章目录 一、group_concat函数1.1、语法1.2、示例1.2.1、查询所有姓名&#xff0c;并显示在一行1.2.2、单列合并&#xff0c;指定冒号分隔符1.2.3、单列合并&#xff0c;去重1.2.4、多列拼接合并1.2.5、多列拼接合并&#xff0c;列和列之间指定分隔符 在mysql的关联查询或子查…

周报0708-0715(run代码)

本周围绕代码展开学习&#xff0c;学习了组内的FWI代码&#xff0c;主要收获是熟练了创建环境、匹配解释器、安装必要包的流程&#xff0c;以及搜索时的小Tips&#xff1a;比如需要的包whl&#xff08;表示该包的编译版本&#xff09;。遇到的问题仍然不少 三个主要问题&#…

「实战应用」如何用图表控件LightningChart JS创建树状图应用?

LightningChart JS是Web上性能特高的图表库&#xff0c;具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用&#xff0c;从而实现高刷新率和流畅的动画&#xff0c;常用于贸易&#xff0c;工程&#xff0c;航…

Go语言并发编程-同步和锁

同步和锁 概述 同步是并发编程的基本要素之一&#xff0c;我们通过channel可以完成多个goroutine间数据和信号的同步。 除了channel外&#xff0c;我们还可以使用go的官方同步包sync&#xff0c;sync/atomic 完成一些基础的同步功能。主要包含同步数据、锁、原子操作等。 一…

P3-AI产品经理-九五小庞

AI产品的数据流向 美团外卖&#xff0c;实时只能调度 美团28分钟送达需求的分析 AI产品常用的算法 常用算法 常见的AI算法解析 自然语言生成NLG语音识别&#xff1a;科大讯飞&#xff0c;通义千问 虚拟现实机器学习平台 决策管理系统生物特征识别技术 RPA(机器人流程自动…

ICE-BA原理

文章目录 主要思想约束建立IMU&Local & globalBAIMU预积分LocalBAGlobalBA求解方法常用的求解思路改进增量BA方法 论文&#xff1a; 《ICE-BA: Incremental, Consistent and Efficient Bundle Adjustment for Visual-Inertial SLAM》 ICE-BA&#xff1a;增量、一致且高…

多商户SaaS版扫码点餐系统开源

基于前后端分离的 多商户 SaaS 版扫码点餐系统&#xff0c;支持后台点餐、多人同时在线点餐、购物车共享、餐桌状态实时监控&#xff0c;菜品管理、餐桌管理等众多功能。 源码下载&#xff1a;多商户 SaaS 版扫码点餐系统.zip 功能特色 手机扫码点餐功能&#xff1a;用户可…

如何评价2023年国际高校数学建模竞赛B题?

问题1&#xff1a;在三星堆发现的一个外圆直径为85厘米&#xff0c;内圆直径为40厘米&#xff08;假设&#xff09;的青铜车轮&#xff0c;青铜车轮有5条车轴&#xff08;射线&#xff09;&#xff0c;5条内弧线本质是双曲线&#xff0c;顶点与内圆相切&#xff0c;内弧双曲线的…

植物病害分级调研

Web of Science搜索&#xff0c;关键字“plant disease severity recognition”&#xff0c;共407篇&#xff0c;限制2023年以后共71篇 2019、2020 《Disentangled Representation Learning for Leaf Diseases Recognition》 2019 IF&#xff1a;0.8 论文&#xff1a;Disen…

Xcode进行真机测试时总是断连,如何解决?

嗨。大家好&#xff0c;我是兰若姐姐。最近我在用真机进行app自动化测试的时候&#xff0c;经常会遇到xcode和手机断连&#xff0c;每次断连之后需要重新连接&#xff0c;每次断开都会出现以下截图的报错 当这种情况出现时&#xff0c;之前执行的用例就相当于白执行了&#xff…

爬虫瑞数5案例:某大学总医院

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、瑞数简介 瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,…

Go语言并发编程-Goroutine调度

goroutine 概念 在Go中&#xff0c;每个并发执行的单元称为goroutine。通常称为Go协程。 go 关键字启动goroutine go中使用关键字 go 即可启动新的goroutine。 示例代码&#xff1a; 两个函数分别输出奇数和偶数。采用常规调用顺序执行&#xff0c;和采用go并发调用&…

大模型学习笔记十一:视觉大模型

一、判别式模型和生成式模型 1&#xff09;判别式模型Discriminative ①给某一个样本&#xff0c;判断属于某个类别的概率&#xff0c;擅长分类任务&#xff0c;计算量少。&#xff08;学习策略函数Y f(X)或者条件概率P(YIX)&#xff09; ②不能反映训练数据本身的特性 ③学习…

优思学院|直方图与条形图的具体区别

在六西格玛方法、质量管理工具中&#xff0c;数据的分析和可视化是关键步骤。直方图和条形图是两种常用的图表工具&#xff0c;但它们在用途和显示方式上有显著区别。本文将详细探讨这两种图表的定义、特性、应用及如何选择适合的图表。 1. 直方图和条形图的定义 直方图是一种…

人工智能未来发展前景将会怎样?

当我们探讨人工智能未来的发展前景时&#xff0c;可以从多个角度来详细说明其可能的影响和趋势&#xff1a; 技术进步与应用扩展 1.深度学习与机器学习&#xff1a; 进一步优化和算法进展&#xff1a;深度学习已经取得了巨大成就&#xff0c;但仍面临挑战&#xff0c;如对小数…

程序员想要6万一个月,需要什么能力,要吃什么样的苦?

让我们来算一道小学数学题&#xff1a;6w*1272w&#xff0c;年包72w的程序员起码是阿里P7-P8的水平了&#xff0c;论工作职责来说&#xff0c;起码得是大厂的一个小tech leader&#xff0c;如果是在小公司&#xff0c;基本上是公司骨干级成员&#xff0c;或是统筹整个项目和小组…

FFmpeg播放视频

VS2017+FFmpeg6.2.r113110+SDL2.30.5 1.下载 ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC++控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令

如何让您的反爬虫策略更具弹性?揭秘管理技巧

摘要&#xff1a; 本文深入探讨了反爬虫策略的最新趋势与实战技巧&#xff0c;旨在帮助网站所有者和数据分析师构建更加灵活高效的爬虫管理系统。通过理解反爬机制、动态应对策略及合法数据采集的最佳实践&#xff0c;确保数据收集在遵守网络规则的同时&#xff0c;实现业务目…