当前位置:首页 > 科技  > 软件

Vue入门指南:从基础到实践

来源: 责编: 时间:2024-07-03 17:26:29 1130观看
导读Vue.js是一个流行的JavaScript框架,用于构建用户界面和单页应用程序。它以简洁、易用和高效而著称,使得开发者能够快速上手并开发出功能丰富的Web应用。本文将带你走进Vue的世界,从基础知识到实践应用,一步步引导你掌握Vu

Vue.js是一个流行的JavaScript框架,用于构建用户界面和单页应用程序。它以简洁、易用和高效而著称,使得开发者能够快速上手并开发出功能丰富的Web应用。本文将带你走进Vue的世界,从基础知识到实践应用,一步步引导你掌握Vue的核心概念和开发技巧。oxY28资讯网——每日最新资讯28at.com

oxY28资讯网——每日最新资讯28at.com

一、Vue简介

Vue.js(通常简称为Vue)是一个用于构建用户界面的渐进式JavaScript框架。与其他重量级框架(如Angular、React)不同,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。oxY28资讯网——每日最新资讯28at.com

二、Vue基础

1. 声明式渲染

Vue.js的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统:oxY28资讯网——每日最新资讯28at.com

<div id="app">  {{ message }}</div>
var app = new Vue({  el: '#app',  data: {    message: 'Hello Vue!'  }})

这段代码创建了一个Vue实例,并将其挂载到匹配选择器#app的第一个元素上。当这些数据对象上的数据改变时,视图会进行重渲染。oxY28资讯网——每日最新资讯28at.com

2. 组件系统

组件是Vue应用中的基本单位,用于构建用户界面。每个Vue组件都包含预定义选项的一个对象,其中大多数选项是函数,用于定义组件的行为:oxY28资讯网——每日最新资讯28at.com

Vue.component('todo-item', {  props: ['todo'],  template: '<li>{{ todo.text }}</li>'})

你可以通过简单的方式在父组件中使用这个组件:oxY28资讯网——每日最新资讯28at.com

<ol>  <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item></ol>

3. 指令

Vue.js提供了一系列指令,用于将数据绑定到DOM上。最常用的指令包括v-bind、v-model、v-for等。oxY28资讯网——每日最新资讯28at.com

  • v-bind:动态地绑定一个或多个特性,或一个组件 prop 到表达式。
  • v-model:在表单输入和应用状态之间创建双向数据绑定。
  • v-for:基于源数据多次渲染元素或模板块。

4. Vue实例

每个Vue应用都是通过构造函数Vue创建一个新的Vue实例开始的:oxY28资讯网——每日最新资讯28at.com

var vm = new Vue({  // 选项})

在实例化时存在一系列选项,包含数据、模板、挂载元素、方法、生命周期钩子等。oxY28资讯网——每日最新资讯28at.com

三、Vue进阶

1. 计算属性和侦听器

计算属性用于声明式地描述一个数据依赖于其他数据。Vue会自动追踪依赖数据的变化,并且仅在相关依赖发生变化时才重新计算。oxY28资讯网——每日最新资讯28at.com

computed: {  reversedMessage() {    return this.message.split('').reverse().join('')  }}

侦听器允许你执行代码响应于数据的变化。当需要在数据变化时执行异步或开销较大的操作时,侦听器非常有用。oxY28资讯网——每日最新资讯28at.com

watch: {  message(newVal, oldVal) {    console.log(`Message changed from ${oldVal} to ${newVal}`);  }}

2. 条件渲染和列表渲染

Vue提供了v-if、v-else-if、v-else等指令用于条件渲染,以及v-for指令用于列表渲染。oxY28资讯网——每日最新资讯28at.com

<div v-if="type === 'A'">A</div><div v-else-if="type === 'B'">B</div><div v-else-if="type === 'C'">C</div><div v-else>Not A/B/C</div><ul>  <li v-for="item in items">{{ item.text }}</li></ul>

3. 事件处理

Vue允许你使用v-on指令监听DOM事件,并在触发时执行一些JavaScript代码。oxY28资讯网——每日最新资讯28at.com

<button v-on:click="counter += 1">Add 1</button>

4. 表单输入绑定

使用v-model指令可以实现表单输入和应用状态之间的双向绑定。oxY28资讯网——每日最新资讯28at.com

<input v-model="message">

四、Vue实例生命周期

每个Vue实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会调用一些生命周期钩子,给予用户机会在一些特定的时刻加入自己的代码。oxY28资讯网——每日最新资讯28at.com

  • beforeCreate:在实例初始化之后,数据观测(data observer)和event/watcher事件配置之前被调用。
  • created:在实例创建完成后被立即调用。在这一步,实例已完成数据观测、属性和方法的运算、watch/event事件回调。然而,挂载阶段还没开始,$el属性目前尚不可用。
  • beforeMount:在挂载开始之前被调用:相关的render函数首次被调用。该钩子在服务器端渲染期间不被调用。
  • mounted:el被新创建的vm.el也在文档内。
  • beforeUpdate:数据更新时调用,发生在虚拟DOM打补丁之前。这里适合在更新之前访问现有的DOM,比如手动移除已添加的事件监听器。
  • updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件DOM已经更新,所以你现在可以执行依赖于DOM的操作。
  • beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
  • destroyed:Vue实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

五、Vue路由与状态管理

1. Vue Router

Vue Router是Vue.js官方的路由管理器。它和Vue.js核心深度集成,让构建单页面应用变得易如反掌。oxY28资讯网——每日最新资讯28at.com

const router = new VueRouter({  routes: [    { path: '/foo', component: Foo },    { path: '/bar', component: Bar }  ]})const app = new Vue({  router}).$mount('#app')

2. Vuex

Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。oxY28资讯网——每日最新资讯28at.com

const store = new Vuex.Store({  state: {    count: 0  },  mutations: {    increment (state) {      state.count++    }  }})

六、Vue实践

1. 创建Vue项目

使用Vue CLI可以快速搭建Vue开发环境。首先,你需要安装Node.js和npm。然后,通过npm安装Vue CLI:oxY28资讯网——每日最新资讯28at.com

npm install -g @vue/cli

创建一个新的Vue项目:oxY28资讯网——每日最新资讯28at.com

vue create my-project

进入项目目录,启动开发服务器:oxY28资讯网——每日最新资讯28at.com

cd my-projectnpm run serve

2. 组件化开发

在Vue中,推荐将UI拆分为独立的、可复用的组件。每个组件都应该包含独立的逻辑和样式。oxY28资讯网——每日最新资讯28at.com

<template>  <div class="todo-item">    {{ todo.text }}  </div></template><script>export default {  props: ['todo']}</script><style scoped>.todo-item {  font-size: 24px;  color: #42b983;}</style>

3. 父子组件通信

在Vue中,父子组件之间的通信是非常常见的。父组件可以通过props向子组件传递数据,子组件可以通过$emit触发事件来向父组件发送消息。oxY28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-98561-0.htmlVue入门指南:从基础到实践

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: len() 函数妙用:十个增强 Python 程序可读性的实践

下一篇: 一篇文章带你了解 JavaScript Object 对象

标签:
  • 热门焦点
  • 对标苹果的灵动岛 华为带来实况窗功能

    对标苹果的灵动岛 华为带来实况窗功能

    继苹果的灵动岛之后,华为也在今天正式推出了“实况窗”功能。据今天鸿蒙OS 4.0的现场演示显示,华为的实况窗可以更高效的展现出实时通知,比如锁屏上就能看到外卖、打车、银行
  • 三言两语说透设计模式的艺术-单例模式

    三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 之家push系统迭代之路

    之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 使用LLM插件从命令行访问Llama 2

    使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • “又被陈思诚骗了”

    “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top
Baidu
map