Vue.js 入门教程

Vue.js 入门教程

一、引言

Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。与其他重量级框架不同,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易上手,同时也很容易与其他库或已有项目整合。本文将引导你逐步了解 Vue.js 的基本概念和用法。

二、安装 Vue.js
  1. 直接下载并引入

    你可以直接在 HTML 文件中通过 CDN 引入 Vue.js:

     

    html复制代码

    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
  2. 使用 npm 安装

    如果你在使用 Node.js,推荐使用 npm 安装 Vue:

     

    bash复制代码

    npm install vue
  3. 使用 Vue CLI 创建项目

    Vue CLI 是一个官方提供的标准工具,用于快速搭建 Vue.js 项目。你可以通过以下命令全局安装 Vue CLI:

     

    bash复制代码

    npm install -g @vue/cli

    然后,通过以下命令创建一个新项目:

     

    bash复制代码

    vue create my-project
    cd my-project
    npm run serve
三、基础概念
  1. 实例

    Vue 实例是 Vue 应用的起点。每个 Vue 应用都是通过创建一个 Vue 实例开始的:

     

    javascript复制代码

    var vm = new Vue({
    el: '#app',
    data: {
    message: 'Hello Vue!'
    }
    });

    在 HTML 中,你需要有一个与 el 属性对应的 DOM 元素:

     

    html复制代码

    <div id="app">{{ message }}</div>
  2. 模板语法

    Vue 使用基于 HTML 的模板语法,允许你声明式地将 DOM 绑定到底层 Vue 实例的数据上。Vue 的模板语法非常简单,主要有两种:

    • 插值{{ }} 用于文本插值。
    • 指令v-bindv-modelv-if 等,用于在模板中声明式地绑定或控制 DOM 元素。
  3. 计算属性

    计算属性用于声明式地描述基于响应式依赖的复杂逻辑。当依赖变化时,计算属性会重新计算,并且缓存结果,只有在相关依赖再次变化时才会重新计算。

     

    javascript复制代码

    var vm = new Vue({
    el: '#app',
    data: {
    message: 'Hello'
    },
    computed: {
    reversedMessage: function () {
    return this.message.split('').reverse().join('');
    }
    }
    });

    在模板中使用计算属性:

     

    html复制代码

    <div id="app">{{ reversedMessage }}</div>
  4. 事件处理

    使用 v-on 指令(简写为 @)来监听 DOM 事件:

     

    html复制代码

    <div id="app">
    <button @click="greet">Greet</button>
    </div>

    在 Vue 实例中定义方法:

     

    javascript复制代码

    var vm = new Vue({
    el: '#app',
    data: {
    name: 'Vue.js'
    },
    methods: {
    greet: function (event) {
    alert('Hello ' + this.name + '!')
    }
    }
    });
四、组件

组件系统是 Vue 的另一个重要概念,它允许我们将 UI 拆分成可复用的独立部分。

  1. 注册组件

    全局注册组件:

     

    javascript复制代码

    Vue.component('my-component', {
    template: '<div>A custom component!</div>'
    });

    局部注册组件:

     

    javascript复制代码

    var Child = {
    template: '<div>A custom component!</div>'
    };
    new Vue({
    el: '#app',
    components: {
    'child-component': Child
    }
    });
  2. 使用组件

     

    html复制代码

    <div id="app">
    <my-component></my-component>
    <child-component></child-component>
    </div>
  3. 组件间的通信

    • 父组件向子组件传递数据:通过 props
    • 子组件向父组件发送消息:通过 $emit 触发事件。
    • 非父子组件间的通信:通过 Vuex(状态管理模式)或 Event Bus。
五、Vue CLI 深入

使用 Vue CLI 创建的项目结构相对复杂,但提供了很多开箱即用的功能,比如路由、状态管理、构建工具等。

  1. 路由

    Vue Router 是 Vue.js 官方的路由管理器。在项目根目录下安装 Vue Router:

     

    bash复制代码

    npm install vue-router

    配置路由:

     

    javascript复制代码

    import Vue from 'vue';
    import Router from 'vue-router';
    import Home from './components/Home.vue';
    import About from './components/About.vue';
    Vue.use(Router);
    export default new Router({
    routes: [
    {
    path: '/',
    name: 'Home',
    component: Home
    },
    {
    path: '/about',
    name: 'About',
    component: About
    }
    ]
    });

    在 Vue 实例中使用路由:

     

    javascript复制代码

    import Vue from 'vue';
    import App from './App.vue';
    import router from './router';
    new Vue({
    router,
    render: h => h(App)
    }).$mount('#app');
  2. 状态管理

    Vuex 是专为 Vue.js 应用程序开发的状态管理模式。安装 Vuex:

     

    bash复制代码

    npm install vuex

    配置 Vuex:

     

    javascript复制代码

    import Vue from 'vue';
    import Vuex from 'vuex';
    Vue.use(Vuex);
    export default new Vuex.Store({
    state: {
    count: 0
    },
    mutations: {
    increment (state) {
    state.count++;
    }
    },
    actions: {
    increment ({ commit }) {
    commit('increment');
    }
    },
    getters: {
    count: state => state.count
    }
    });

    在 Vue 实例中使用 Vuex:

     

    javascript复制代码

    import Vue from 'vue';
    import App from './App.vue';
    import store from './store';
    new Vue({
    store,
    render: h => h(App)
    }).$mount('#app');
六、总结

Vue.js 是一个强大且易于上手的 JavaScript 框架,适用于构建单页面应用(SPA)。通过本文,你应该已经了解了 Vue.js 的基础概念,包括实例、模板语法、计算属性、事件处理以及组件系统。此外,你还学习了如何使用 Vue CLI 创建和管理复杂的 Vue.js 项目,包括路由和状态管理。希望这篇入门教程能帮助你快速上手 Vue.js 开发。

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

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

相关文章

FPGA秋招必看基础 | FPGA设计流程

关注&#x1f446; 望森FPGA &#x1f446; 查看更多FPGA资讯 这是望森的第 30 期分享 作者 | 望森 来源 | 望森FPGA 目录 摘要 1 明确需求、设计系统架构 2 RTL 输入 3 功能仿真&#xff08;Behavioral Simulation&#xff09; 4 综合&#xff08;Synthesis&#xff09;…

Qgis 开发初级 《符号化》

本章主要简介Qgis 的矢量图层的符号化。Qgis的符号化具体作用于每个图层&#xff0c;图层通过具体的方法设置符号化样式。 1、QgsFeatureRenderer Qgs的符号化类主要是QgsFeatureRenderer&#xff0c;这是一个抽象类&#xff0c;它派生出了许多类&#xff0c;如下所示。常用的…

self-supervised learning(BERT和GPT)

1芝麻街与NLP模型 我們接下來要講的主題呢叫做Self-Supervised Learning&#xff0c;在講self-supervised learning之前呢&#xff0c;就不能不介紹一下芝麻街&#xff0c;為什麼呢因為不知道為什麼self-supervised learning的模型都是以芝麻街的人物命名。 因為Bert是一個非常…

使用Bert+BiLSTM+CRF训练 NER任务

使用的数据集在这里E-Commercial NER Dataset / 电商NER数据集_数据集-阿里云天池 针对面向电商的命名实体识别研究&#xff0c;我们通过爬取搜集了淘宝商品文本的标题&#xff0c;并标注了4大类&#xff0c;9小类的实体类别。具体类型及实体数量如下 针对面向电商的命名实体…

iptables防火墙总结

iptables防火墙总结 四表五链 P 默认策略&#xff0c;-p 协议 出口防火墙&#xff0c;默认配置&#xff0c;使用Forword&#xff0c;采用-P 例题&#xff1a;设置iptables防火墙默认不允许任何数据包进入&#xff0c;相应命令是&#xff1a; Iptables -t filter -P FORWORD -j…

undertow服务器初始化

springboot整合undertow服务器的源码从老生常谈的createWebServer方法谈起。spring会在生成所有bean后到创建web容器&#xff0c;此时会到容器找到ServletWebServerFactory接口bean&#xff0c;spring会根据引入的框架确定生成的ServletWebServerFactory&#xff0c;我们在mave…

【数据结构】五分钟自测主干知识(十一)

上回&#xff08;半年前&#xff09;我们讲了二叉树&#xff0c;如果我们要找到二叉树某序遍历下的前驱和后继&#xff0c;我们需要对其作动态遍历求得&#xff0c;比较费时&#xff1b;或者给每个结点增加两个指针域prior和next&#xff0c;但比较费空间。 有没有既能省时间&…

docker部署SQL审核平台Archery

1、概述 Archery 是一个开源的 SQL 审核平台,专为数据库的 SQL 运维和管理而设计,广泛应用于企业的数据库运维工作中。其主要功能是帮助数据库管理员和开发人员实现 SQL 审核、SQL 执行、在线执行、查询、工单管理、权限控制等数据库管理相关的操作。 Archery 的主要功能包括…

网络地址转换——NAT技术详解

网络地址转换——NAT技术详解 一、引言 随着互联网的飞速发展&#xff0c;IP地址资源日益紧张。为了解决IP地址资源短缺的问题&#xff0c;NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术应运而生。NAT技术允许一个私有IP地址的网络通…

为什么我钟情于JPA:优雅数据访问的背后秘密

在Java开发的世界中&#xff0c;选择合适的数据访问框架不仅影响代码的可读性和维护性&#xff0c;更直接关系到项目的成败。虽然MyBatis及其衍生框架在灵活性和性能调优方面有其独特优势&#xff0c;但我更倾向于使用Java持久化API&#xff08;JPA&#xff09;。本文将探讨我为…

【K8S系列】Kubernetes Service 基础知识 详细介绍

在 Kubernetes 中&#xff0c;Service 是一种抽象的资源&#xff0c;用于定义一组 Pod 的访问策略。它为这些 Pod 提供了一个稳定的访问入口&#xff0c;解决了 Pod 可能频繁变化的问题。本文将详细介绍 Kubernetes Service 的类型、功能、使用场景、DNS 和负载均衡等方面。 1.…

Openlayers高级交互(2/20):清除所有图层的有效方法

Openlayers项目中,经常会放置很多的图层,在业务操作的时候,会做出删除所有图层的行为。这里面给出了一个详细的方法,能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文章,为小白群体提供基础知识及示例演示,能解决…

[软件工程]—桥接(Brige)模式与伪码推导

桥接&#xff08;Brige&#xff09;模式与伪码推导 1.基本概念 1.1 动机 由于某些类型的固有的实现逻辑&#xff0c;使它们具有两个变化的维度&#xff0c;乃至多个维度的变化。如何应对这种“多维度的变化”&#xff1f;如何利用面向对象技术是的类型可以轻松的沿着两个乃至…

022_matrix_dancing_in_Matlab中求解一个超简单的矩阵问题

矩阵体操 首先&#xff0c;可以复习一下向量、矩阵和索引的基础知识。 向量约定矩阵约定矩阵索引 一般而言&#xff0c;我们利用进行计算大概就是以下的步骤&#xff1a; #mermaid-svg-UovF0Uldf5XxntJi {font-family:"trebuchet ms",verdana,arial,sans-serif;fo…

MFC实现以不规则PNG图片作为窗口背景

效果图 显示的不规则PNG图片 头文件 #pragma once #include <gdiplus.h> #pragma comment (lib,"Gdiplus.lib")// CShowBack 对话框class CShowBack : public CDialogEx {DECLARE_DYNAMIC(CShowBack) public:CShowBack(CWnd* pParent nullptr); // 标准构…

C++学习路线(二十二)

构造函数 构造函数作用 在创建一个新的对象时&#xff0c;自动调用的函数&#xff0c;用来进行“初始化”工作:对这个对象内部的数据成员进行初始化。 构造函数特点 1.自动调用(在创建新对象时&#xff0c;自动调用) 2.构造函数的函数名&#xff0c;和类名相同 3.构造函数…

【002】调用kimi实现文件上传并进行分析_#py

调用kimi实现文件上传并进行分析 前言1. 上传文件并解析2. 调用方式3. 完整代码 前言 在【001】调用kimi实现AI对话_#py对Kimi有了一定的介绍&#xff0c;以及简单对话和连续对话的程序编写。 本次主要希望能通过kimi分析文件&#xff0c;总结文件的能力。 1. 上传文件并解析…

《近似线性可分支持向量机的原理推导》 目标函数 公式解析

本文是将文章《近似线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析&#xff0c;便于初学者更好的理解。 公式 9-38 解释&#xff1a; min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 C ∑ i 1 N ξ i \min_{w, b, \xi} \quad \frac{1}{2} \|w\|^2 C \sum_{i1}^{N} \x…

httpd服务

文章目录 1、搭建一个网络yum源2、基于域名访问的虚拟主机3、基于端口来访问域名4、搭建个人网站5、加密访问显示自定义网页内容 1、搭建一个网络yum源 [roottest01 conf.d]# cat repo.conf <virtualhost *:80>documentroot /var/www/html/ServerName 10.104.43.154ali…

react18中的jsx 底层渲染机制相关原理

jsx 底层渲染机制 渲染 jsx 时&#xff0c;会先解析 jsx&#xff0c;生成一个虚拟 dom(virtual dom)。然后将虚拟 dom 渲染成真实 dom。如果 jsx 中包含事件&#xff0c;会将事件绑定到真实 dom 上。 虚拟 dom 对象&#xff0c;是框架内部构建的一套对象体系&#xff0c;对象…