【DAY43-1】vue知识整理

这篇具有很好参考价值的文章主要介绍了【DAY43-1】vue知识整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue是一个流行的JavaScript框架,它具有简单易学、灵活高效的特点,在前端开发中受到广泛欢迎。Vue生态包括了众多的插件和工具,以下是几个常见的Vue生态:

Vuex:Vuex是为Vue.js应用程序开发的状态管理模式。它可以帮助你管理应用程序的所有组件的状态,并使用一些规则来维护该状态。

Vue Router:Vue Router是Vue.js官方的路由管理器,它允许开发人员在单页应用程序(SPA)中定义不同的页面和路由。

axios:axios是一个基于Promise的HTTP客户端,用于与后端API交互。Vue中经常使用axios进行数据请求。

Element UI:Element UI是一套基于Vue.js 2.0的UI组件库,提供了丰富的组件,包括表单、表格、对话框等等。

Vuetify:Vuetify 是一个专门为Vue.js设计的响应式UI库,以实现 Material Design 规范为目标,提供了一系列高质量的组件


Nuxt.js:Nuxt.js是一个基于Vue.js开发的通用应用框架,可用于快速创建服务端渲染的Vue.js应用程序。

Vue CLI:Vue CLI是官方提供的命令行工具,用于快速搭建和管理Vue项目。它支持简单快捷地创建项目、约定式的目录结构、webpack配置等,并且集成了大量的开箱即用的插件和功能。

Vue Test Utils:Vue Test Utils是Vue.js官方提供的测试实用程序库,可以帮助编写从单元测试到端到端测试的不同类型的测试用例。

Vuex ORM:Vuex ORM是一个通过将ORM 模式引入 Vuex 状态管理器来简化状态管理的轻松解决方法。

Storybook:Storybook是一个强大的UI组件开发环境,使你能够在隔离的环境中浏览、测试、文档化并交互式地开发组件,它也能够和Vue完美集成。


VuePress:VuePress是一个基于Vue.js开发的静态网站生成器,它专门为技术文档而设计,并提供了丰富的主题和插件。

Vue-i18n:Vue-i18n是一个国际化插件,用于在Vue.js应用程序中实现多语言支持。

VueDND:VueDND是一个基于Vue.js开发的拖放组件,可以用于实现交互式的拖放特效。

Buefy:Buefy是一个基于Bulma CSS框架和Vue.js的UI组件库,能够快速构建现代感的Web应用程序。

Vue-Multiselect:Vue-Multiselect是一个强大而易于使用的自定义下拉选择组件,可以实现单选和多选功能。


Vue Apollo:Vue Apollo 是一个用于在 Vue.js 应用程序中运行 GraphQL 查询的graphql库。

Vuetable-2:Vuetable-2是一个灵活的、可自定义的基于Vue.js 2.x的数据表格插件,它支持过滤、排序、分页等多种功能。

Vue Material:Vue Material 是一个 Material Design 风格的 UI 组件库,看起来非常现代和专业,并且对移动设备友好。

Vue-chartjs:Vue-chartjs是一个用户友好的、灵活的Vue.js 2.x轻量级封装组件,用于图表渲染。

vue-datetime-picker:vue-datetime-picker是一个日期时间选择器,用于Vue.js应用程序,在业务场景中非常实用。


VueLazyload:VueLazyload是一个轻量级的Vue.js 图片懒加载插件,可以实现图片的延迟加载。

Vue-awesome-swiper:Vue-awesome-swiper 是基于swiper封装的 Vue Component,令制作轮播图非常方便。

Vue-meta:Vue-meta 是用于管理应用程序头部标签和元数据的插件。在单页应用程序中,控制应用程序的元信息(如标题、关键字和描述)对于在搜索引擎结果中得到更高的排名至关重要。

vue-infinite-loading:vue-infinite-loading 是一款强大的无限滚动插件,可供Vue开发者使用。

Vuejs-datepicker:Vuejs-datepicker是Vue.js日期选择器组件,简单易用,并支持多种自定义选项。


Vue.js 3相对于Vue.js 2来说,不仅在语法和组件性能上进行了升级,其生态系统也更加完善。以下是Vue.js 3的一些生态:

Vuex 4:与Vue.js 3兼容的 Vuex 状态管理库。

Vue Router 4:专门为Vue.js 3开发的路由管理器,帮助您定义和管理单页应用程序中的页面和路由。

Vite: Vite 是一个快速并且简单上手、基于Rollup构建工具的前端开发服务器,被认为是Vue3项目的最佳选择。

Pinia:Pinia是一个新的基于函数式编程的状态管理库,使用 TypeScript 编写,它可以取代Vuex, 更严格遵循了 Vue.js 的响应规则。

Windi CSS:Windi CSS是一个类似Tailwind CSS的CSS框架,可与 Vue.js 3紧密集成,有助于快速构建出现代UI。

Element Plus:Element Plus 是一个由华佗天团维护,基于Element UI 2.x设计的开源 UI 组件库,可用于快速创建现代感的企业级应用程序。


VueUse:一个社区驱动的组合式函数和状态管理库,内置了许多常用工具函数和Vue组件。

Vue Test Utils Next:Vue.js官方测试实用程序库的下一代,提供整洁、简单的 API,可做到易于使用以及针对Vue.js特性的最佳高效测试。

Vue Final Modal:一个开箱即用的简单modal框架,支持多种自定义选项。

The Progressive
JavaScript Framework
:一个新型的渐进式JavaScript框架,想要解决React或

Angular的困境,并具有以上两者的优点,因此备受期待。

Slidev:一个趋向Vue滑动演示生成器,确保建立现代感且交互性强的演示文稿。VueUse:一个社区驱动的组合式函数和状态管理库,内置了许多常用工具函数和Vue组件。

Vue Test Utils Next:Vue.js官方测试实用程序库的下一代,提供整洁、简单的 API,可做到易于使用以及针对Vue.js特性的最佳高效测试。

Vue Final Modal:一个开箱即用的简单modal框架,支持多种自定义选项。

The Progressive
JavaScript Framework
:一个新型的渐进式JavaScript框架,想要解决React或

Angular的困境,并具有以上两者的优点,因此备受期待。

Slidev:一个趋向Vue滑动演示生成器,确保建立现代感且交互性强的演示文稿。

vuex store里有哪些属性方法?

Vuex是一个专为Vue.js应用程序开发的状态管理模式。其核心是一个store,包含着应用中大部分的状态(state)。Vuex的store中包含着以下属性方法:

  1. state:存储应用的状态数据。它可以是对象、数组或者是其他原始数据类型。

  2. getters:获取存储在state中的数据。它们类似于是store的计算属性。

  3. mutations:用于修改state中的数据。mutations必须是同步函数。

  4. actions:用于提交mutations。actions可以异步地调用mutations,以处理复杂的业务逻辑中的异步操作。

  5. modules:将store拆分为多个子模块。每个子模块都具有自己的state,getters,mutations和actions。

除此之外,Vuex store还包含以下辅助方法:

  1. commit:用于提交mutations的方法。

  2. dispatch:用于提交actions的方法。

  3. subscribe:用于订阅store的变化。

  4. replaceState:用于替换store中的数据。

  5. registerModule和unregisterModule:用于动态注册和注销模块。

  6. strict:一个布尔值,表示是否启用Vuex的严格模式。在严格模式下,任何对store的修改必须通过mutations进行,否则会抛出错误。

ES6语法学习(把每一个都写一遍)

        1.语法声明方式变化:

         let const声明指令

        2.Arrow function(箭头函数)

        3.解构赋值 rest

        4.字符串模板 

es6字符串模板的例子

当你使用字符串模板,你可以创建一个带有嵌入式表达式的字符串。使用反引号(``)或双引号(“”) 来将字符串值括起来,然后使用 ${ } 语法将表达式嵌入到字符串中。在表达式中,你可以使用任何有效的 JavaScript 表达式,可以引用变量、函数、对象等,然后它将计算表达式的结果,并将结果嵌入到字符串。这使代码更易于编写和阅读。

以下是一个简单的使用ES6字符串模板的例子:

const firstName = 'Alice';
const lastName = 'Smith';
const age = 35;
const message = `Hello, my name is ${firstName} ${lastName} and I'm ${age} years old.`;
console.log(message); // Output: Hello, my name is Alice Smith and I'm 35 years old.

在这个例子中,我们定义了三个变量:firstNamelastName和 age。然后,我们使用 message 常量来创建一个字符串,这个字符串包含了三个嵌入式表达式,它们使用 ${} 语法进行包裹。最后,我们使用 console.log 输出字符串。

可以看到,${firstName}${lastName}, 和 ${age} 会被替换成变量的值,结果字符串就是 Hello, my name is Alice Smith and I'm 35 years old.。 这是一个简单而强大的 ES6 字符串模板的例子,它使我们可以使用变量和表达式创建动态和可读性更高的字符串。

5.扩展操作符

6.promise、async、await

7.模块化、class

8.map、set

9.字符串和数组的一些方法(了解至少2种以上的数组排序算法)

10.基础js语法原理:new,bind,call,apply的实现原理

11.防抖节流的原理和写法

ES6核心原理(实现)

Vue.js是一款流行的JavaScript框架,它的核心原理是数据驱动以及组件化架构。

数据驱动意味着Vue.js提供了一种机制来自动更新DOM(文档对象模型)元素,无需手动去修改DOM元素。Vue.js使用了一种双向绑定的机制,通过将数据传递给Vue实例中的组件,任何组件中的数据变化都能够自动更新到视图(即DOM)中。这是通过使用虚拟DOM(Virtual DOM)来实现的。虚拟DOM是Vue.js使用的一种抽象的表示方法,它是一个JavaScript对象,用于描述真实DOM的状态。当数据发生变化时,Vue.js会计算出新的虚拟DOM并比较它与旧的虚拟DOM的差异,然后仅更新只需要更新的部分。

组件化架构使得Vue.js具有高度的可复用性和可扩展性。在Vue.js中,每个组件都是一个独立的实体,它拥有自己的状态和行为。通过将组件构建成树形结构,应用程序的整体结构和功能可以以更高层次的方式描述和组织。组件化架构在同时处理UI复杂度和应用程序组织方面变得更加容易,使应用程序的维护和测试变得更加简单。

在Vue.js的实现中,最核心的部分包括以下几个方面:

  1. 依赖追踪系统:Vue.js使用依赖追踪来检测数据变化并更新视图。在Vue.js中,每个组件实例都维护了一个依赖追踪系统,用于跟踪其依赖的数据。当组件渲染时,Vue.js会记录该组件访问的所有数据,以确保它们在其响应式系统中被标记为已使用。当这些数据发生变化时,组件将知道重新渲染自身。

  2. 模板编译系统:Vue.js使用模板编译器将模板转换为渲染函数。模板编译器将模板解析为抽象的语法树,并将其转换为渲染函数,以实现组件的渲染。Vue.js还可以使用运行时编译,以便在运行时动态编译和渲染组件。

  3. 响应式系统:Vue.js使用一个响应式系统来追踪应用程序中的数据变化并实时更新视图。Vue.js内部使用了ES6 Object.defineProperty方法来为数据对象添加getter和setter来监听数据变化,从而触发视图的重新渲染。

  4. 虚拟DOM渲染:虚拟DOM是一个轻量级的JavaScript对象,用于描述真实DOM的状态。Vue.js使用虚拟DOM来实现组件的渲染,通过Virtual DOM的比较算法,可以最小化DOM操作数量,以提高渲染性能。

Vue的DIFF算法:

指的是在进行Virtual DOM比较时,Vue会通过算法尽量减少页面重新渲染的节点数,提高页面渲染的性能。Vue的DIFF算法使用了一种叫做"双端比较"的策略,它可以同时从新旧两个虚拟节点列表的头部和尾部开始比较,找到最长的共同子序列,从而对需要更新的节点进行标记,尽量减少了页面上需要重新渲染的节点数。

双端比较的具体实现如下:

1.首先比较两个列表的头部节点,如果节点相同,则进行更新,否则比较尾部节点,如果相同则进行更新,否则进入下一步。

2.接下来比较新列表的头部节点与旧列表的尾部节点,如果相同则进行更新,否则比较旧列表的头部节点与新列表的尾部节点,如果相同则进行更新。

3.如果以上比较都没有找到相同的节点,则循环遍历新列表中的每个节点,查找是否有和旧列表相同的节点,如果有则进行更新,如果没有则插入新节点。

虽然Vue的DIFF算法可以减少页面重绘的次数,但是也有一定的性能损耗,因为在进行节点的比较时需要寻找最长的共同子序列,这个过程需要花费一定的时间。因此,在实际开发中,需要根据页面复杂度和更新频率等因素综合考虑是否使用Vue的DIFF算法。

 虚拟dom是什么

虚拟 DOM (Virtual DOM)是指通过 JavaScript 对象来描述真实的 DOM 结构,并通过比较新旧两个虚拟 DOM 之间的差异来批量更新真实 DOM,从而提高 DOM 操作的效率和性能。

在 Web 开发中,数据的变化经常会带来 DOM 的改变,而频繁的 DOM 操作会导致页面的重排和重绘,影响渲染性能和用户体验。为了解决这个问题,Virtual DOM 的出现为开发者提供了一种更高效的方式。使用虚拟 DOM,我们可以先将更新的数据通过生成新的虚拟 DOM 树来描述修改后的 DOM 结构,然后通过比较新旧两个虚拟 DOM 树之间的差异,仅更新发生变化的部分,最终仅仅操作必要的部分,减少了浏览器重排、重绘的开销,提高了渲染性能和用户体验。

虽然虚拟 DOM 需要额外的计算和操作,但是由于它仅包含 DOM 树的数据结构,相比直接操作真实 DOM,虚拟 DOM 的计算效率更高,更新速度更快。而且通过 diff 算法优化更新,可以避免了大量无意义的 DOM 操作。

当然,在实际开发中,虚拟 DOM 不仅仅是最终的解决方案。它常常是一种解决复杂组件维护和性能问题的手段,为了更好的性能表现,它经常会与其他优化策略进行配合。文章来源地址https://www.toymoban.com/news/detail-420815.html

到了这里,关于【DAY43-1】vue知识整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵

     现在我有的是一个50行,1832列的矩阵,但是其每一列上有效的数字并不多,且不相等,其余都是没用的0元素。那么如何删除矩阵中的零元素,重新整理不等行的矩阵?先上结论。 结论:最方便的还是转化成Cell矩阵,因为只有这样,每一列可以存储不等长度的(自由的)数

    2024年02月11日
    浏览(45)
  • Vue-route核心知识整理

    目录 1 相关理解 1.1 对 vue-router 的理解 1.2 对 SPA 应用的理解 1.3 对路由的理解 1.3.1 什么是路由? 1.3.2 路由的分类 2 几个注意点 3 路由的基本使用 4 嵌套 (多级) 路由 5 路由传参 5.1 query 方式传参 5.1.1 跳转路由并携带query参数, to的字符串写法 5.1.2 跳转路由并携带query参数,

    2024年02月21日
    浏览(38)
  • Vue-Ajax核心知识整理

    在Vue框架中可以有很多方式实现 ajax, 其中有xhr、jQuery、fetch、axios、vue-resource, 其中Vue的作者尤雨溪推荐使用axios,所以在使用Vue框架时,尽量还是 使用axios 但是当我们使用ajax时,经常会遇到 跨域的问题 ,比如你本地的端口号是8080, 而服务器的端口号是5050,当你向服务器请

    2024年02月20日
    浏览(31)
  • Vue框架:适用于TypeScript的JavaScript框架

    Vue 是一个高效、灵活、易于学习的 JavaScript 框架,它采用了 MVVM 架构,能够快速构建交互式的用户界面。作为一种现代化的框架,Vue已经成为了许多开发者的首选,其中也包括了很多使用 TypeScript 的开发者。 Vue 框架的最大特点是轻量级、易于上手、灵活和高效,这一点也是

    2024年02月11日
    浏览(41)
  • Day 43

    Day 43 1049.最后一块石头的重量II 本题中,石头的重量是 stones[i],石头的价值也是 stones[i] ,可以 “最多可以装的价值为 dp[j]” == “最多可以背的重量为dp[j]” dp[j] = max(dp[j], dp[j - stones[i]] + stones[i]); 最后dp[target]里是容量为target的背包所能背的最大重量。 那么分成两堆石头,一

    2024年02月13日
    浏览(80)
  • 每天一点Python——day43

       

    2024年02月11日
    浏览(65)
  • 从无到有手写一个基于Netty+Kyro+Zookeeper的RPC框架,javaweb面试题目整理

    通过这个简易的轮子,你可以学到 RPC 的底层原理和原理以及各种 Java 编码实践的运用。 你甚至可以把这个当做你的毕设/项目经验的选择,这是非常不错!对比其他求职者的项目经验都是各种系统,造轮子肯定是更加能赢得面试官的青睐。 介绍 这是一款基于 Netty+Kyro+Zookee

    2024年04月15日
    浏览(48)
  • day43-Spring_IOC

    1.2.3 1. Spring_IOC 1.1  定义:轻量级框架,java EE的春天,主流框架 1.2  Spring 特性:IOC控制反转;AOP面相切面 1.3  组成部分:Spring在SSM中所起到的作用(SpringMVC和Mybatis框架的黏合剂) 1.4  Spring 理念:核心思想是面向Bean(万物皆Bean组件) 1.5  Spring 优势:IOC 控制反转(降低了

    2024年02月15日
    浏览(43)
  • LeetCode 每日一题 Day 37-43

    终于考完试了,寒假期间将会每天持续更新! 给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的欧式距离和 i 和 k 之间的欧式距离相等(需要考虑元组的顺序)。 返回平面上所有回旋镖的数量。 示例 1: 输

    2024年01月17日
    浏览(37)
  • 【代码随想录】刷题笔记Day43

    刚过完非常愉快的元旦假期,唔想反工啊啊啊,先刷刷题找回学习的状态吧 dp[target] == target为目标,weight和value相同的01背包问题,用一维遍历 dp[j]为容量为j的背包所能装的最大价值 dp[j] = max(dp[j], dp[j - num[i]] + nums[i]) 关键在于把两两相减问题转化为两堆近似相减,和上一题就

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包