Vue常用知识点汇总

news/2024/5/18 16:01:01/文章来源:https://blog.csdn.net/gkx19898993699/article/details/128009092

1. Vue常见的指令有哪些,有什么用

        (1)v-text:  会替换掉元素里的内容;

        (2)v-html: 可以渲染html界面;

        (3)v-clock: 防止界面闪烁;

        (4)v-bind: 界面元素属性值的绑定,简写为:;

        (5)v-on:   事件绑定,简写为@;

        (6)v-model:数据双向绑定;

        (7)v-for: 可用来遍历数组、对象、字符串,:key提高重排效率,要求是字符串或者数字, 且唯一;

        (8)v-if、v-else、v-else-if:判断条件删除或显示dom元素(只修改一次可以使用);

        (9)v-show: 控制显示隐藏(频繁切换时使用);

        (10)v-once: 只会执行一次渲染,当数据发生改变时,不会再变化;

2.Vue常见的指令有哪些,有什么用

        双向数据绑定是通过数据劫持结合发布者订阅者模式的方式来实现的,通过Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图

3.路由的跳转和传参有哪几种方式

(1)路由跳转:

        声明式:<router-link to="/index"></router-link>(注意加不加冒号的问题,如果是一个固 定的字符串的话不需要加冒号)

        函数式:this.$router.push('/index')

(2)路由传参:

        路由传参:分为path+query和name+params

        声明式: <router-link :to="{path:'/index',query:{id:233}}"></router-link>

        <router-link :to="{name:'home', params: {id:233}}"></router-link>

        函数式: this.$router.push({path:'/index',query:{id:233}})

        this.$router.push({name:'home', params: {id:233}})

详情见之前发布的文章——

(1条消息) Vue中路由的使用_终将抵达丶的博客-CSDN博客_vue中路由的使用icon-default.png?t=M85Bhttps://blog.csdn.net/gkx19898993699/article/details/127034600?spm=1001.2014.3001.5502

4.组件间的通讯方式有哪些

(1)父传子

(2)子传父

(3)vuex

        Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储,管理应用中所有组件的状态。

        作用:进行统一的状态管理,解决不同组件共享数据的问题。

        不同视图需要变更同一状态的问题

(4)事件总线

        事件总线像是所有组件共用相同的事件中心,可以向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件。事件总线多用于兄弟组件的通信。

(5)本地缓存

(6)ref

详情见之前的文章——

(1条消息) 组件间的通讯方式_终将抵达丶的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/gkx19898993699/article/details/127928743?spm=1001.2014.3001.5502

5.谈一谈对路由守卫的理解

        路由守卫是路由在跳转前、后过程中的一些钩子函数,这些函数可以让你操作一些其他的事,在后台管理中设置权限时经常看到,在实现路由跳转前校验是否有权限,有权限就可以通过,反之就会被执行其他操作,如返回首页。

        “导航”表示路由正在发生改变。正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。

        路由守卫分为:全局守卫,组件守卫,路由独享;
        全局守卫:所有的路由切换都会执行,一般写在路由配置文件中

router.beforeEach(fn) :to\from\next();

router.afterEach(fn):to\from;

router.beforeResolve(fn):to\from\next();

        组件守卫:

beforeRouteEnter(fn):to\from\next() //在渲染该组件的对应路由被confirm前调用,不能获取组件实例,因此无法this;

beforeRouteUpdate(fn):to\from\next();

beforeRouteLeave(fn):to\from\next();

        路由独享守卫:一般写在路由配置中

beforeEnter(fn):to\from\next();

实例:

可以使用 router.beforeEach 注册一个全局前置守卫。

to:跳转后的页面;from:跳转前的页面;

next是一个方法,next() 直接调用不阻止允许跳转,next(‘/index’)跳转到首页,next(false)不允许跳转;

6.谈一谈对Vuex的理解

(1)vuex是什么:

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

(2)使用vuex的原因:

        进行统一的状态管理,解决不同组件共享数据的问题。

        不同视图需要变更同一状态的问题。

        使用vuex之后,状态变化更加清晰。

此处需单独整理一个vuex的文章后续放入链接——

7.谈一谈对混入的理解

        混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

混入:分为全局混入和局部混入 局部混入只可以在当前组件内部使用 全局混入可以在任何组件中进行使用。

局部混入:多个组件引入局部混入时,一个组件中改动了mixin中的数据,另一个引入了mixin的组件中的属性和方法是不会改变的。

全局混入:在任何组件中都可以使用 需要挂载在顶级对象上

import {mixins} from "./mixins"//先引入封装的混入代码文件

Vue.mixin(mixins)//将引入的文件属性方法挂载到Vue的顶级对象上不同的组件混入是互相独立的

选项合并:当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。

比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

组件和混入的属性方法合并优先级:

data数据冲突:mixin中的data数据和组件中的data数据冲突时,组件中的data数据会覆盖mixin中的数据;

生命周期函数:这种不算冲突,生命周期函数的名称是固定的,先执行混入里的代码再执行组件中的代码;

方法名冲突:在组件中调用该方法,调用的是组件中的方法;

优点:

提高代码复用性

只需要修改一个地方就可以

缺点:

命名冲突

滥用的话后期很难维护,排查问题不方便

8.谈一谈对插槽的理解

插槽是子组件中提供给父组件使用的一个占位符,用<slot></slot>表示。父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件的<slot></slot>标签。

默认插槽:只能有一个

具名插槽:可以有多个

详情可参考之前的文章——

(1条消息) VUE-组件以及插槽父子间传递(更新版)_终将抵达丶的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/gkx19898993699/article/details/126990630?spm=1001.2014.3001.5502

9.什么是跨域,如何解决

        同源策略:浏览器的一个安全协议,协议主机端口要保持一致,只要有一个不一样,就是跨域请求。

        同源策略就是一种约定,它是浏览器最核心也是最基本的安全功能。同源策略会阻止一个域的JavaScript脚本和另一个域的内容进行交互,是用于隔离潜在恶意文件的关键安全机制。当一个请求url的协议、域名、端口三者之间任意一个与前面页面url不同即为跨域。

解决跨域:

        (1)后台直接不做限制,放开所有请求。优点就是方便,缺点就是不安全;

        (2)JSONP原理,利用script标签不受同源策略,需要后端配合;

        (3)配置代理;

配置代理:

devServer:{proxy:{'/course-api':{   //代理名称target:'https://course.myhope365.com/api',  //后台接口域名changeOrign:true,  //是否跨域pathRewrite:{'^/course-api':''  //路径重写}},//第二种写法'/api':{   //代理名称target:’https://course.myhope365.com’,  //后台接口域名changeOrign:true  //是否跨域}}
}

10.谈一谈封装请求的心得

        框架的理念是高内聚低耦合,函数封装也类似,封装完请求后可以便于我们后续维护与更改。

axios封装的好处:统一处理,提高效率,便于维护。

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

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

相关文章

JavaScript开发工具WebStorm入门教程:开始运行WebStorm(一)

WebStorm是一个JavaScript开发工具&#xff0c;用于JavaScript及其相关技术编码&#xff0c;包括TypeScript、React、Vue、Angular、Node.js、HTML和样式表。就像IntelliJ IDEA和其他JetBrains ide一样&#xff0c;WebStorm让您的开发体验更愉快&#xff0c;自动化日常工作&…

7种主流数据分析软件比较及经典教材推荐

前言 STATA 软件优点&#xff1a;Stata以其简单易懂和功能强大受到初学者和高级用户的普遍欢迎。使用时可以每次只输入一个命令&#xff0c;也可以通过一个Stata程序一次输入多个命令。这样的话即使发生错误&#xff0c;也较容易找出并加以修改。尽管Stata的数据管理能力没有…

用DIV+CSS技术设计我的家乡网站(web前端网页制作课作业)南宁绿城之都

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

Xshell连接不上创建的虚拟机

1.输入ip a查看是否有对应的网卡ip 更改前&#xff1a; 更改后&#xff1a; 具体看下面博客的步骤&#xff0c;这里不详细赘述 (137条消息) Linux虚拟机联网步骤&#xff08;修改网络配置信息&#xff09;_袁梦码的博客-CSDN博客_怎么让linux虚拟机联网 2.关闭防火墙 永久关…

C语言实现冒泡排序(图解)

目录 一、冒泡排序是什么&#xff1f; 二、图解冒泡排序过程 三、代码实现 3.1易错点&#xff08;切记切记&#xff09; 四、优化 4.1优化代码 一、冒泡排序是什么&#xff1f; int arr[]{9,8,7,6,5,4,3,2,1,0} &#xff0c;像这样的数组&#xff0c;升序排序。 冒泡排序…

linux 清理垃圾文件

linux的文件系统比windows的要优秀&#xff0c;不会产生碎片&#xff0c;对于长时间运行的服务器来说尤为重要&#xff0c;而且linux系统本身也不会像windows一样产生大量的垃圾文件。不知道这个说法有没有可信度!至少我们可以确定的是linux系统的文件系统是比较优秀的! linux…

使用html+css+js实现一个静态页面(含源码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

MASA Framework 事件总线 - 进程内事件总线

概述 事件总线是一种事件发布/订阅结构&#xff0c;通过发布订阅模式可以解耦不同架构层级&#xff0c;同样它也可以来解决业务之间的耦合&#xff0c;它有以下优点 松耦合横切关注点可测试性事件驱动 发布订阅模式 通过下图我们可以快速了解发布订阅模式的本质 订阅者将自…

Python学习 - 异常处理

Python学习 - 语法入门&#xff1a;https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型&#xff1a;https://blog.csdn.net/wanzijy/article/details/125341568 Python学习 - 流程控制&#xff1a;https://blog.csdn.net/wanzijy/article/details…

什么是软件测试?

什么是软件测试&#xff1f; 软件测试的定义&#xff1a;在一定条件下对软件进行操作&#xff0c;发现软件的问题&#xff0c;提高软件的质量。 软件测试在开发中的有着重要地位。软件测试在各阶段的完成相应的任务&#xff0c;需求测试&#xff0c;架构测试&#xff0c;详细测…

关于windows的文件监控管理系统(Java)

目 录 摘 要 I Abstract II 1.绪论 1 1.1课题背景 1 1.2系统开发的目的和意义 2 1.3国内外概况 3 1.4研究主要内容 3 2.windows文件监控管理系统相关技术介绍 4 2.1 API 4 2.2 API HOOK 5 2.3 Java 5 2.4 DLL 6 2.4 Windows系统的Socket编程 6 2.4.1使用WinSock API 6 2.4.2 使…

MCE | 为什么肥胖经常被“针对”?

近年来&#xff0c;肥胖问题受到越来越多的关注&#xff0c;肥胖不只影响美丽身材&#xff0c;过度肥胖还可能导致肥胖症&#xff0c;这是很多疾病的高风险因素。所以肥胖是一种病&#xff1f;肥胖的标准是什么&#xff1f;别急&#xff0c;等小编慢慢道来。 认识肥胖症 (Obesi…

运动用品品牌排行榜,2022年值得买的运动用品推荐

如今&#xff0c;人们的生活节奏越来越快&#xff0c;工作和生活压力大。因此&#xff0c;人们越来越重视体育运动&#xff0c;通过体育运动达到放松和锻炼身体的目的&#xff0c;运动装备也就跟着火热起来。无论是进行室内或户外活动&#xff0c;选一套合适的运动装备是很有必…

顶象首届业务安全保卫战完美落幕,快来看看TOP10里有没有你!

今年双十一&#xff0c;顶象特别发起了首届业务安全保卫战&#xff0c;旨在召集白帽子们为业务安全贡献自己的一份力量。历经一个月&#xff0c;顶象首届业务安全保卫战已于20日正式落下帷幕。 截止11月20 日&#xff0c;顶象业务安全保卫战通过审核的业务安全情报&业务安…

Jetpack Compose中的state核心思想

Compose 中的状态 应用的“状态”是指可以随时间变化的任何值。这是一个非常宽泛的定义&#xff0c;从 Room 数据库到类的变量&#xff0c;全部涵盖在内。 所有 Android 应用都会向用户显示状态。下面是 Android 应用中的一些状态示例&#xff1a; 聊天应用中最新收到的消息…

MES必懂知识,市场需求下的生产管理系统

任何事物的产生和发展都与市场的需求是分不开的&#xff0c;只有当市场需求新生的事物的时候&#xff0c;他才会兴起&#xff0c;有的事物早已经产生&#xff0c;在当时的环境下并未兴起&#xff0c;却在后来才兴盛&#xff0c;这是市场的需求的影响。 MES便是在市场需求下诞生…

105-120-Hadoop-MapReduce-outputformat:

105-Hadoop-MapReduce-outputformat&#xff1a; OutputFormat 数据输出&#xff0c;OutputFormat接口实现类 OutputFormat是MapReduce输出的基类&#xff0c;所有实现MapReduce输出都实现了 OutputFormat 接口。下面我们介绍几种常见的OutputFormat实现类。 1&#xff0e;O…

系统分析与设计 复习

文章目录系统分析与设计 复习第 1 章 系统分析与设计概述系统特性DevOps第 2 章 系统规划**系统规划步骤**规划模型诺兰模型**CMM 模型**系统规划方法战略集合转换法 SST关键成功因素法 CSF企业资源规划法 BSPCSB 三者联系和区别第 3 章系统分析系统分析概述业务流程图系统流程…

linux进程间通信-FIFO,让你全方位理解

有名管道(FIFO) 有名管道也被称为FIFO文件&#xff0c;是一种特殊的文件。由于linux所有的事物都可以被视为文件&#xff0c;所以对有名管道的使用也就变得与文件操作非常统一。 (1)创建有名管道 用如下两个函数中的其中一个&#xff0c;可以创建有名管道。 #include #include …

我们的程序是如何跑起来的?

1.我们写的代码写完并测试以后是如何部署给用户使用的? 1. 准备所需要的服务器 2. 在服务器上安装JDK、mysql、redis、Tomcat、Nginx等环境 3. 进行mysql、redis、nginx的连接配置 4. 项目打包。前端构建打包成功后在根目录dist文件夹中&#xff1b;后端打成jar包&#xff0c…