Vue.js 的介绍与组件开发初步

Vue.js 的介绍与组件开发初步

  • Vue.js 的介绍与组件开发初步
    • 引言
    • 第一部分:Vue.js 基础入门
      • 1.1 什么是 Vue.js?
      • 1.2 搭建 Vue.js 开发环境
        • 安装 Node.js 和 npm
        • 安装 Vue CLI
        • 创建新项目
        • 运行示例
      • 1.3 第一个 Vue.js 示例
    • 第二部分:Vue.js 组件开发基础
      • 2.1 组件的作用域与作用域穿透
      • 2.2 组件的生命周期钩子
      • 2.3 组件的事件系统
    • 第三部分:Vue.js 的组件开发的进阶特性
      • 3.1 组件的状态管理
      • 3.2 组件的插槽
      • 3.3 组件的多语言(说的更好听一点:国际化)支持
    • 第四部分:Vue.js 的实际应用开发
      • 4.1 开发一个简单的待办事项列表
        • 父组件(App.vue)
        • 子组件(TodoItem.vue)
    • 第五部分:总结与扩展
      • 5.1 总结
      • 5.2 扩展学习

Vue.js 的介绍与组件开发初步

引言

随着互联网的快速发展,前端技术也在不断进步。在众多的前端框架中,Vue.js 以其简洁、高效和易用性备受欢迎。无论是个人开
发者还是企业团队,Vue.js 都成为了构建用户界面的理想选择。本文将详细介绍 Vue.js 的基本概念,并深入探讨组件开发的相关
知识,帮助读者快速上手并掌握 Vue.js 的核心技能。

第一部分:Vue.js 基础入门

1.1 什么是 Vue.js?

Vue.js 是一个用于构建用户界面的 JavaScript 框架。它遵循 MVVM(Model-View-ViewModel)模式,使得数据绑定更加简洁和高效
。与传统的 MVC 架构不同,Vue.js 将视图和 ViewModel 结合在一起,从而简化了代码结构。

1.2 搭建 Vue.js 开发环境

安装 Node.js 和 npm

首先需要安装 Node.js 和 npm(Node Package Manager),这是前提条件

具体如何安装可以参考作者的这篇文章:
Node.js 和 npm安装教程

安装 Vue CLI

Vue CLI 是一个官方的脚手架工具,能够快速创建和管理 Vue 项目。

npm install -g vue-cli-service
创建新项目

使用 Vue CLI 创建一个新的 Vue 项目:

vue create my-vue-app
cd my-vue-app
npm run dev
运行示例

打开浏览器,访问 http://localhost:8080,即可看到运行中的 Vue 应用。

1.3 第一个 Vue.js 示例

<!DOCTYPE html>
<html>
<head><title>Vue.js 入门</title><script src="https://unpkg.com/vue@2"></script>
</head>
<body><div id="app">{{ message }}</div><script>var app = new Vue({el: '#app',data: {message: 'Hello, Vue.js!'}});</script>
</body>
</html>

这个简单的示例展示了如何使用 Vue 实现数据绑定。通过 {{ }} 指令,视图中的内容会根据数据的变化自动更新。

第二部分:Vue.js 组件开发基础

2.1 组件的作用域与作用域穿透

在组件中,data 属性默认作用于当前组件的范围。如果需要将属性传递给父组件,可以使用 v-bind 或者 : 操作符。

<!-- 父组件 -->
<child-component :message="parentMessage"></child-component><!-- 子组件 -->
<script>export default {props: ['message']}
</script>

2.2 组件的生命周期钩子

了解 Vue 组件的生命周期对于优化性能至关重要。

// 生命周期函数
export default {beforeCreate() { /* 初始化前 */ },created() { /* 初始化后 */ },mounted() { /* 挂载 DOM 后 */ },updated() { /* 更新后 */ },destroyed() { /* 销毁前 */ }
}

2.3 组件的事件系统

通过自定义事件,组件之间可以实现高效的通信。

<!-- 触发事件 -->
this.$emit('custom-event', 'event-data')<!-- 监听事件 -->
@custom-event="handleEvent"

第三部分:Vue.js 的组件开发的进阶特性

3.1 组件的状态管理

对于复杂应用,推荐使用 Vuex 进行状态管理。

// store.js
import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)export const store = new Vuex.Store({state: {count: 0},mutations: {increment(state) {state.count++}}
})

3.2 组件的插槽

插槽允许父组件向子组件传递内容,增强了组件的灵活性。

<!-- 父组件 -->
<child-component><template slot="header"><h1>Header</h1></template>
</child-component><!-- 子组件 -->
<slot name="header"></slot>

3.3 组件的多语言(说的更好听一点:国际化)支持

通过 vue-i18n,可以轻松实现国际化的组件开发。

import Vue from 'vue'
import VueI18n from 'vue-i18n'Vue.use(VueI18n)const i18n = new VueI18n({locale: 'zh-CN', // 设置默认语言messages: {'en-US': { ... },'zh-CN': { ... }}
})

第四部分:Vue.js 的实际应用开发

4.1 开发一个简单的待办事项列表

父组件(App.vue)
<template><div id="app"><h1>待办事项</h1><input v-model="newTodo" placeholder="输入新任务"><button @click="addTodo">添加</button><ul><li v-for="(todo, index) in todos" :key="index">{{ todo.text }}<button @click="removeTodo(index)">删除</button></li></ul></div>
</template><script>
export default {data() {return {newTodo: '',todos: []}},methods: {addTodo() {if (this.newTodo.trim()) {this.todos.push({ text: this.newTodo })this.newTodo = ''}},removeTodo(index) {this.todos.splice(index, 1)}}
}
</script>
子组件(TodoItem.vue)
<template><li class="todo-item">{{ text }}<button @click="deleteTodo">删除</button></li>
</template><script>
export default {props: ['text', 'index'],methods: {deleteTodo() {this.$emit('delete', this.index)}}
}
</script>

第五部分:总结与扩展

5.1 总结

  • 组件化开发使代码结构更清晰。
  • Vue 提供了丰富的生命周期钩子,便于控制组件的行为。
  • 使用 Vuex 进行状态管理,可以提升应用的可维护性。

5.2 扩展学习

  • 深入理解响应式原理,优化数据绑定性能。
  • 学习 Vue Router 实现前后台路由功能。
  • 探索 Nuxt.js 或 Vue CLI 快速开发脚手架。

通过以上内容的学习和实践,开发者可以熟练掌握 Vue 组件的开发技巧,并能够构建出高效、可维护的 Web 应用。

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

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

相关文章

架构技能(四):需求分析

需求分析&#xff0c;即分析需求&#xff0c;分析软件用户需要解决的问题。 需求分析的下一环节是软件的整体架构设计&#xff0c;需求是输入&#xff0c;架构是输出&#xff0c;需求决定了架构。 决定架构的是软件的所有需求吗&#xff1f;肯定不是&#xff0c;真正决定架构…

Linux:线程池和单例模式

一、普通线程池 1.1 线程池概念 线程池&#xff1a;一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价&…

Leetcode598:区间加法 II

题目描述&#xff1a; 给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] [ai, bi] 意味着当所有的 0 < x < ai 和 0 < y < bi 时&#xff0c; M[x][y] 应该加 1。 在 执行完所有操作后 &#xff0c;计算并返回 矩阵中最大…

C++泛型编程指南04-(对默认调用参数的类型推断)

文章目录 问题描述解决方案示例代码 关键点解释进一步改进&#xff1a;结合概念约束 你提到的情况确实是一个常见的问题&#xff1a;在C中&#xff0c;类型推断不适用于默认调用参数。这意味着如果你希望函数模板能够通过默认参数来实例化&#xff0c;你需要为模板参数提供一个…

在 Ubuntu 上安装 Node.js 23.x

在 Ubuntu 上安装 Node.js 23.x 前提条件安装步骤1. 下载设置脚本2. 运行设置脚本3. 安装 Node.js4. 验证安装 参考链接总结 在现代 web 开发中&#xff0c;Node.js 是一个不可或缺的工具。它提供了一个强大的 JavaScript 运行时环境&#xff0c;使得开发人员可以在服务器端使用…

maven mysql jdk nvm node npm 环境安装

安装JDK 1.8 11 环境 maven环境安装 打开网站 下载 下载zip格式 解压 自己创建一个maven库 以后在idea 使用maven时候重新设置一下 这三个地方分别设置 这时候maven才算设置好 nvm 管理 npm nodejs nvm下载 安装 Releases coreybutler/nvm-windows GitHub 一键安装且若有…

【B站保姆级视频教程:Jetson配置YOLOv11环境(六)PyTorchTorchvision安装】

Jetson配置YOLOv11环境&#xff08;6&#xff09;PyTorch&Torchvision安装 文章目录 1. 安装PyTorch1.1安装依赖项1.2 下载torch wheel 安装包1.3 安装 2. 安装torchvisiion2.1 安装依赖2.2 编译安装torchvision2.2.1 Torchvisiion版本选择2.2.2 下载torchvisiion到Downloa…

数科OFD证照生成原理剖析与平替方案实现

数科OFD证照生成原理剖析及C#平替方案实现 1. OFD证照生成原理 OFD&#xff08;Open Fixed-layout Document&#xff09;是一种基于XML的固定版式文档格式&#xff0c;广泛应用于电子发票、电子证照等领域。数科OFD证照生成工具的核心原理包括以下几个方面&#xff1a; OFD文…

【算法-位运算】位运算遍历 LogTick 算法

文章目录 1. 引入2. LogTick 优化遍历过程3. 题目3.1 LeetCode3097 或值至少为 K 的最短子数组 II3.2 LeetCode2411 按位或最大的最小子数组长度3.3 LeetCode3209 子数组按位与值为 K 的数目3.4 LeetCode3171 找到按位或最接近 K 的子数组3.5 LeetCode1521 找到最接近目标值的函…

NLP深度学习 DAY5:Sequence-to-sequence 模型详解

Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种用于处理输入和输出均为序列任务的深度学习模型。它最初被设计用于机器翻译&#xff0c;但后来广泛应用于其他任务&#xff0c;如文本摘要、对话系统、语音识别、问答系统等。 核心思想 Seq2Seq 模型的目标是将…

处理 **5万字(约7.5万-10万token,中文1字≈1.5-2token)** 的上下文

处理 5万字&#xff08;约7.5万-10万token&#xff0c;中文1字≈1.5-2token&#xff09; 的上下文&#xff0c;对模型的长文本处理能力和显存要求较高。以下是不同规模模型的适用性分析及推荐&#xff1a; 一、模型规模与上下文能力的关系 模型类型参数量最大上下文长度&#…

吴恩达深度学习——优化神经网络

本文来自https://www.bilibili.com/video/BV1FT4y1E74V&#xff0c;仅为本人学习所用。 文章目录 优化样本大小mini-batch 优化梯度下降法动量梯度下降法指数加权平均概念偏差纠正 动量梯度下降法 RMSpropAdam优化算法 优化学习率局部最优问题&#xff08;了解&#xff09; 优…

Shell篇-字符串处理

目录 1.变量引用 2.获取字符串长度 3.字符串截取 4.删除子字符串 5.字符串替换 总结&#xff1a; Bash&#xff08;Shell 脚本&#xff09;中的字符串处理语法。以下是对其的介绍和总结&#xff1a;Bash 变量可以使用不同的语法来获取、修改和删除字符串的内容。图片中列…

面经——C语言——指针大小,内存分配,野指针,大小端

文章目录 指针大小分段C语言内存分配1. 静态内存分配1.1 栈内存分配1.2 数据段内存分配 2. 动态内存分配2.1 malloc&#xff08;Memory Allocation&#xff09;2.2 free&#xff08;Free Memory&#xff09; 动态内存分配的流程例子 野指针野指针的原因&#xff1a;防止野指针的…

CMake项目编译与开源项目目录结构

Cmake 使用简单方便&#xff0c;可以跨平台构建项目编译环境&#xff0c;尤其比直接写makefile简单&#xff0c;可以通过简单的Cmake生成负责的Makefile文件。 如果没有使用cmake进行编译&#xff0c;需要如下命令&#xff1a;&#xff08;以muduo库echo服务器为例&#xff09;…

书生大模型实战营7

文章目录 L1——基础岛提示词工程实践什么是Prompt(提示词)什么是提示工程提示设计框架CRISPECO-STAR LangGPT结构化提示词LangGPT结构编写技巧构建全局思维链保持上下文语义一致性有机结合其他 Prompt 技巧 常用的提示词模块 浦语提示词工程实践(LangGPT版)自动化生成LangGPT提…

Shadow DOM举例

这东西具有隔离效果&#xff0c;对于一些插件需要append一些div倒是不错的选择 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"utf-8"> <title>演示例子</title> </head> <body> <style&g…

SQLAlchemy 2.0的简单使用教程

SQLAlchemy 2.0相比1.x进行了很大的更新&#xff0c;目前网上的教程不多&#xff0c;以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎&#xff0c;链接到mysql engine crea…

《LLM大语言模型+RAG实战+Langchain+ChatGLM-4+Transformer》

文章目录 Langchain的定义Langchain的组成三个核心组件实现整个核心组成部分 为什么要使用LangchainLangchain的底层原理Langchain实战操作LangSmithLangChain调用LLM安装openAI库-国内镜像源代码运行结果小结 使用Langchain的提示模板部署Langchain程序安装langserve代码请求格…

某网盘工具,限速下载上传!

聊一聊 某度盘对于个人和未开通会员的情况下&#xff0c;容量还是有点小。最近自己的盘满了&#xff0c;还有很多东西放不进去。转眼发现正在下载的寻雷&#xff0c;就点进去看看寻雷盘有多大&#xff0c;一看&#xff0c;还好&#xff0c;比某度盘容量大。 但一想&#xff0…