vue3基础九问,你会几问
1. Vue是什么?
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的核心库只关注视图层,采用自下而上的增量开发设计,这使得你可以将 Vue 轻松地整合到现有的项目中,或者与其他前端库一起使用。Vue 的目标是通过提供反应的数据绑定和可组合的视图组件,使前端开发更加方便、高效。
2. 说出Vue的10个常用指令
v-bind
:动态绑定一个或多个属性或一个组件 prop。<img v-bind:src="imageSrc" />
v-model
:创建双向数据绑定。<input v-model="message" />
v-for
:基于一个数组渲染一个列表。<li v-for="item in items" :key="item.id">{{ item.text }}</li>
v-if
:基于条件渲染元素。<p v-if="seen">现在你看到我了</p>
v-else-if
:v-if
的“else if”块。<p v-if="type === 'A'">A</p> <p v-else-if="type === 'B'">B</p> <p v-else>C</p>
v-else
:v-if
的“else”块。<p v-if="type === 'A'">A</p> <p v-else>B</p>
v-show
:基于条件展示或隐藏元素 (通过 CSSdisplay
属性进行切换)。<p v-show="isShown">现在你看到我了</p>
v-on
:监听 DOM 事件(常用于触发数据变更)。<button v-on:click="doSomething">点击我</button>
v-pre
:跳过这个元素和它的子元素的编译过程,用于临时展示原始 Mustache 标签。<span v-pre>{{ this will not be compiled }}</span>
v-cloak
:这个指令保持在元素上直到关联实例结束编译。<div v-cloak>{{ message }} </div>
3. 说说Vue的生命周期
Vue实例在创建过程中会经历一系列的初始化过程,包括设置数据监听、编译模板、挂载DOM、更新DOM等。Vue提供了几个生命周期钩子函数,允许用户在特定的阶段执行额外的操作:
beforeCreate
:实例初始化之后,数据观测 (data observer) 和事件/watcher 都还没有被设置。created
:实例已经创建完成,属性‘data’、‘methods’、‘computed’等已初始化,el还未创建。beforeMount
:在挂载开始之前被调用:相关的 render 函数首次被调用。mounted
:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。beforeUpdate
:响应式数据更新时调用,在虚拟DOM重新渲染和打补丁之前。updated
:组件 DOM 已经更新。beforeDestroy
:实例销毁之前调用。这一步,实例仍然完全正常。destroyed
:Vue 实例销毁后调用。这一步,所有的事情都被清理。
4. 组件开发中的父传子和子传父
-
父传子
父组件通过在子组件上使用自定义属性来传递数据。子组件可以通过props
来接收这些数据。<!-- 父组件中 --> <child-component :message="parentMessage"></child-component><!-- 子组件中 --> <template><div>{{ message }}</div> </template> <script> export default {props: ['message'] } </script>
-
子传父
子组件通过$emit
触发事件,父组件监听该事件并执行相应操作。<!-- 子组件中 --> <template><button @click="sendMessage">Send Message</button> </template> <script> export default {methods: {sendMessage() {this.$emit('message-sent', 'Hello Parent!');}} } </script><!-- 父组件中 --> <template><child-component @message-sent="receiveMessage"></child-component> </template> <script> export default {methods: {receiveMessage(message) {console.log(message);}} } </script>
5. 组件插槽的作用
插槽(Slot)是 Vue 用来組装和复用组件的一种机制,允许在组件使用时传递内容。插槽可以让父组件在使用子组件时,能够在子组件的特定位置插入自定义内容。
<!-- 子组件 -->
<template><div class="child"><slot></slot></div>
</template><!-- 父组件中 -->
<child-component><p>这个内容将会被传递到子组件的 slot 位置</p>
</child-component>
另外,Vue还支持命名插槽和作用域插槽。
6. 路由是什么?
路由指的是根据 URL(统一资源定位符)来决定哪些页面或组件应当被显示。Vue Router 是 Vue.js 官方的路由管理器,帮助你轻松管理 Vue 应用中的页面切换和动态 URL。通过定义路由及其对应的组件,Vue Router 使单页应用程序(SPA)具备与多页面网站类似的导航功能,而无需页面刷新。
// 定义路由
const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
]// 创建路由实例,并传递 `routes` 配置
const router = new VueRouter({routes
})// 创建根实例
const app = new Vue({router
}).$mount('#app')
7. 状态管理是什么?
状态管理是一种工具和模式,帮助开发者在应用中管理多个组件间的共享状态。Vuex 是 Vue.js 的官方状态管理库,提供了一个集中式存储,并使用规则确保状态的可预测性和统一性。Vuex 通过定义state
(存储),getter
(获取状态),mutation
(同步操作),和action
(异步操作)来管理应用状态。
import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {count: 0},mutations: {increment (state) {state.count++}},actions: {increment ({ commit }) {commit('increment')}},getters: {getCount: state => state.count}
})new Vue({store
}).$mount('#app')
8. Axios是什么?
Axios 是一个基于 Promise 的 HTTP 客户端,用于向后台发送请求,支持在浏览器和 Node.js 环境中运行。它具有如下特性:
- 创建 XMLHttpRequests 请求
- 创建 Node.js HTTP 请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求数据和响应数据
- 取消请求
- 自动转换JSON数据
简单的请求示例:
import axios from 'axios';axios.get('https://api.example.com/items').then(response => {console.log(response.data);}).catch(error => {console.log(error);});
9. MVVM模型是什么?
MVVM 是 Model-View-ViewModel 的简写,是一种架构模式,用来简化用户界面的开发:
- Model(模型):表示应用的数据;
- View(视图):表示用户界面;
- ViewModel(视图模型):连接 Model 和 View 的桥梁。它将 Model 中的数据展示到 View,并将 View 中的用户输入传递回 Model。
MVVM 主要优点在于双向数据绑定,使得 View 与 Model 自动同步,极大简化了界面更新的开发工作。Vue 本身就是基于 MVVM 模型设计的框架。
相关文章:
vue3基础九问,你会几问
1. Vue是什么? Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的核心库只关注视图层,采用自下而上的增量开发设计,这使得你可以将 Vue 轻松地整合到现有的项目中,或者与其他前端库一起使用。Vue 的目标是通过提供反…...

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置
前言 这篇文章将会对OpenEuler的安装进行详解,一步一步跟着走下去就可以成功 注意 :以下的指令操作最好在root权限下进行(即su - root) ☀️工贵其久,业贵其专! 1、OpenEuler的安装 这里我不过多介绍&a…...
Git(4):修改git提交日志
修改最新一次提交的信息 git commit --amend 修正提交信息 在打开的编辑器中修改信息,保存并退出,Git 会用新的提交信息替换掉旧的提交信息(commit-id 变化)。也可以使用 git commit --amend -m "" 直接修改日志&#…...

【深度学习】(1)--神经网络
文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果,我们可以知道,在学习深度学…...

测试文件和数据库文件
接口测试 flaks项目入口文件manage.py路由配置 import requests#首先面向对象作封装,避免相同代码反复编写 class HttpApiTest:def test_get(self,url,data{}): #用来测试get方法的接口 #self通过共享self类中间的变量 #url用来请求接口 #data可传可不传res reques…...
redis集群模式连接
目录 一:背景 二:实现过程 三:总结 一:背景 redis集群通过将数据分散存储在多个主节点上,每个主节点可以有多个从节点进行数据的复制,以此来实现数据的高可用性和负载均衡。在集群模式下,客户…...

Linux高级I/O:多路转接模型
目录 一.常见的IO模型介绍二.多路转接I/O1.select1.1.函数解析1.2. select特点和缺点1.3.基于 select 的多客户端网络服务器 2.poll2.1.poll函数解析2.2.poll特点和缺点2.3.基于poll的tcp服务器 3.epoll3.1.系列函数解析3.2.epoll原理解析2.3.基于 select 的多客户端网络服务器…...
MongoDB Limit 与 Skip 方法
MongoDB Limit 与 Skip 方法 MongoDB 是一个流行的 NoSQL 数据库,它提供了灵活的数据存储和强大的查询功能。在处理大量数据时,我们常常需要限制返回的结果数量或者跳过一部分结果,这时就可以使用 MongoDB 的 limit 和 skip 方法。 Limit 方…...

【2025】中医药健康管理小程序(安卓原生开发+用户+管理员)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

VulnHub-Bilu_b0x靶机笔记
Bilu_b0x 靶机 概述 Vulnhub 的一个靶机,包含了 sql 注入,文件包含,代码审计,内核提权。整体也是比较简单的内容,和大家一起学习 Billu_b0x.zip 靶机地址: https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…...

Python | Leetcode Python题解之第421题数组中两个数的最大异或值
题目: 题解: class Trie:def __init__(self):# 左子树指向表示 0 的子节点self.left None# 右子树指向表示 1 的子节点self.right Noneclass Solution:def findMaximumXOR(self, nums: List[int]) -> int:# 字典树的根节点root Trie()# 最高位的二…...

如何将普通Tokenizer变成Fast Tokenizer
现在的huggingface库里面Tokenizer有两种,一种就是普通的,另一种是fast的。fast和普通的区别就是fast使用rust语言编写,在处理大量文本的时候会更快。我自己测试的时候单一一句的话fast要比普通的慢一些,当量叠上来,到…...

联合复现!考虑最优弃能率的风光火储联合系统分层优化经济调度!
前言 目前,尽管不断地追逐可再生能源全额消纳方式,大幅减小弃风弃光电量,但是若考虑风电、光伏发电的随机属性,全额消纳可能造成电网峰谷差、调峰难度及调峰调频等辅助服务费用的剧增,引起电网潜在运行风险。因此&…...

Vue开发前端图片上传给java后端
前端效果图 图片上传演示 1 前端代码 <template><div><!-- 页面标题 --><h1 class"page-title">图片上传演示</h1><div class"upload-container"><!-- 使用 van-uploader 组件进行文件上传,v-model 绑…...

react hooks--useCallback
概述 useCallback缓存的是一个函数,主要用于性能优化!!! 基本用法 如何进行性能的优化呢? useCallback会返回一个函数的 memoized(记忆的) 值;在依赖不变的情况下,多次定义的时候,返回的值是…...

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台
828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Ng…...
webservice cxf框架 jaxrs jaxws spring整合 接口测试方法 wsdl报文详解 springboot整合 拦截器 复杂参数类型
webservice cxf框架 jaxrs jaxws spring整合 【java进阶教程之webservice深入浅出【黑马程序员】】 webservice接口测试方法 【SoapUI让你轻松玩转WebService接口测试【特斯汀学院】】 webservice wsdl报文详解 【webservice - 尚硅谷周阳新视频】 webservice springbo…...

2024AI做PPT软件如何重塑演示文稿的创作
现在AI技术的发展已经可以帮我们写作、绘画,最近我发现了不少ai做ppt的工具!不体验不知道,原来合理使用AI工具可以有效的帮我们进行一些办公文件的编写,提高了不少工作效率。如果你也有这方面的需求就接着往下看吧。 1.笔灵AIPPT…...
谷神后端list转map
list转map /*** list2map* list转map:支持全量映射、单字段映射。* * param $list:list:列表。* param $key:string:键。* param $field:string:值字段域。** return map**/ #function list2map($list, $key, $field)#if ($vs.util.isList($list) and $vs.util.is…...

Java集合(Map篇)
一.Map a.使用Map i.键值(key-value)映射表的数据结构,能高效通过key快速查找value(元素)。 ii.Map是一个接口,最常用的实现类是HashMap。 iii.重复放入k-v不会有问题,但是一个…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...