当前位置: 首页 > news >正文

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-ifv-if的“else if”块。
    <p v-if="type === 'A'">A</p>
    <p v-else-if="type === 'B'">B</p>
    <p v-else>C</p>
    
  • v-elsev-if的“else”块。
    <p v-if="type === 'A'">A</p>
    <p v-else>B</p>
    
  • v-show:基于条件展示或隐藏元素 (通过 CSS display属性进行切换)。
    <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是什么&#xff1f; Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的核心库只关注视图层&#xff0c;采用自下而上的增量开发设计&#xff0c;这使得你可以将 Vue 轻松地整合到现有的项目中&#xff0c;或者与其他前端库一起使用。Vue 的目标是通过提供反…...

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置

前言 这篇文章将会对OpenEuler的安装进行详解&#xff0c;一步一步跟着走下去就可以成功 注意 &#xff1a;以下的指令操作最好在root权限下进行&#xff08;即su - root&#xff09; ☀️工贵其久&#xff0c;业贵其专&#xff01; 1、OpenEuler的安装 这里我不过多介绍&a…...

Git(4):修改git提交日志

修改最新一次提交的信息 git commit --amend 修正提交信息 在打开的编辑器中修改信息&#xff0c;保存并退出&#xff0c;Git 会用新的提交信息替换掉旧的提交信息&#xff08;commit-id 变化&#xff09;。也可以使用 git commit --amend -m "" 直接修改日志&#…...

【深度学习】(1)--神经网络

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

测试文件和数据库文件

接口测试 flaks项目入口文件manage.py路由配置 import requests#首先面向对象作封装&#xff0c;避免相同代码反复编写 class HttpApiTest:def test_get(self,url,data{}): #用来测试get方法的接口 #self通过共享self类中间的变量 #url用来请求接口 #data可传可不传res reques…...

redis集群模式连接

目录 一&#xff1a;背景 二&#xff1a;实现过程 三&#xff1a;总结 一&#xff1a;背景 redis集群通过将数据分散存储在多个主节点上&#xff0c;每个主节点可以有多个从节点进行数据的复制&#xff0c;以此来实现数据的高可用性和负载均衡。在集群模式下&#xff0c;客户…...

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 数据库&#xff0c;它提供了灵活的数据存储和强大的查询功能。在处理大量数据时&#xff0c;我们常常需要限制返回的结果数量或者跳过一部分结果&#xff0c;这时就可以使用 MongoDB 的 limit 和 skip 方法。 Limit 方…...

【2025】中医药健康管理小程序(安卓原生开发+用户+管理员)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

VulnHub-Bilu_b0x靶机笔记

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

Python | Leetcode Python题解之第421题数组中两个数的最大异或值

题目&#xff1a; 题解&#xff1a; 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有两种&#xff0c;一种就是普通的&#xff0c;另一种是fast的。fast和普通的区别就是fast使用rust语言编写&#xff0c;在处理大量文本的时候会更快。我自己测试的时候单一一句的话fast要比普通的慢一些&#xff0c;当量叠上来&#xff0c;到…...

联合复现!考虑最优弃能率的风光火储联合系统分层优化经济调度!

前言 目前&#xff0c;尽管不断地追逐可再生能源全额消纳方式&#xff0c;大幅减小弃风弃光电量&#xff0c;但是若考虑风电、光伏发电的随机属性&#xff0c;全额消纳可能造成电网峰谷差、调峰难度及调峰调频等辅助服务费用的剧增&#xff0c;引起电网潜在运行风险。因此&…...

Vue开发前端图片上传给java后端

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

react hooks--useCallback

概述 useCallback缓存的是一个函数&#xff0c;主要用于性能优化!!! 基本用法 如何进行性能的优化呢&#xff1f; useCallback会返回一个函数的 memoized&#xff08;记忆的&#xff09; 值&#xff1b;在依赖不变的情况下&#xff0c;多次定义的时候&#xff0c;返回的值是…...

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台

828华为云征文&#xff5c;华为云Flexus X实例docker部署最新Appsmith社区版&#xff0c;搭建自己的低代码平台 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建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技术的发展已经可以帮我们写作、绘画&#xff0c;最近我发现了不少ai做ppt的工具&#xff01;不体验不知道&#xff0c;原来合理使用AI工具可以有效的帮我们进行一些办公文件的编写&#xff0c;提高了不少工作效率。如果你也有这方面的需求就接着往下看吧。 1.笔灵AIPPT…...

谷神后端list转map

list转map /*** list2map* list转map&#xff1a;支持全量映射、单字段映射。* * 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.键值&#xff08;key-value&#xff09;映射表的数据结构&#xff0c;能高效通过key快速查找value&#xff08;元素&#xff09;。 ii.Map是一个接口&#xff0c;最常用的实现类是HashMap。 iii.重复放入k-v不会有问题&#xff0c;但是一个…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...