网站首页 > 技术文章 正文
21. 权限判断
主要分两种方式。第一种是用户登录后,系统获取其权限信息,然后根据这些权限筛选出用户可以访问的路由,并使用addRoutes动态添加这些路由。在这个过程中,router.beforeEach()方法被用来进行路由守卫。另一种方式是在初始化时挂载全部路由,并在每个路由上标记出访问该路由所需的权限。在用户尝试进行路由跳转(在beforeRouteLeave之前)时,系统会验证用户是否拥有该权限。
22. setup的执行时机
在组件的beforeCreate生命周期钩子之前
23.是否能操作dom
获取DOM节点:
- getElementById():根据元素的ID获取DOM节点。
- getElementsByTagName():根据元素的标签名获取DOM节点列表。
- getElementsByClassName():根据元素的类名获取DOM节点列表。
- querySelector():使用CSS选择器获取第一个匹配的DOM节点。
- querySelectorAll():使用CSS选择器获取所有匹配的DOM节点,返回的是一个类似数组的对象。
操作DOM:
- el.getAttribute():获取元素的某个属性值。
- el.setAttribute():设置元素的某个属性值。
- el.removeAttribute():删除元素的某个属性。
- el.dataset:包含元素的所有H5自定义属性,可以直接通过属性名访问和设置。
- el.innerHTML:获取或设置元素的内部HTML内容。
- el.innerText:获取或设置元素的文本内容,不会解析HTML标签。
- el.value:用于获取或设置表单元素的值。
24. ref和reactive的区别
定义数据方面:
- ref通常用于定义基本类型数据。
- reactive主要用于定义对象或数组类型的数据。虽然ref也可以用于定义对象或数组,但内部会将其转化为reactive代理对象。
原理方面:
- ref通过Object.defineProperty()的get和set方法实现数据代理。
- reactive使用Proxy实现数据代理,并通过Reflect来操作源对象内部的数据。
使用方面:
- 使用ref定义的数据在操作时需要通过.value来访问或修改值,但在模板中不需要。
- 使用reactive定义的数据在操作时不需要通过.value。
25. axios和ajax的区别
axios是对ajax技术的一种封装,类似于jquery对ajax的封装。ajax技术实现了局部数据的刷新,而axios提供了对ajax的封装,使其更加方便和易用。可以说axios是ajax的一种实现,但ajax不仅限于axios,axios有的功能ajax都有,但ajax有的功能axios不一定都有。
26. vuex是什么
vuex是一个专为vue.js设计的状态管理库。它采用集中式存储来管理应用的所有组件的状态,确保这些状态以一种可预测的方式发生变化。vuex包含五大模块:
- state:用于存储数据状态,可以通过this.$store.state.属性名来获取数据。
- getter:基于现有数据计算新数据,类似于Vue中的计算属性。
- mutations:用于改变数据的函数集合,不能有异步操作,因为不能实时监听和跟踪数据状态的变化。
- actions:提交mutation的函数,可以包含异步操作,通常通过this.$store.dispatch('actionName', payload)来调用。
- modules:对vuex进行模块化管理,使得状态管理更加清晰和可维护。
27. 父子组件之间的通信有哪些
- 使用props向子组件传递数据,使用$emit触发事件向父组件发送消息。
- 使用$parent和$children直接访问父组件或子组件的实例。
- 使用provide和inject在祖先组件和后代组件之间传递数据。
- 使用eventBus(事件总线)在不同组件之间传递事件。
- 使用Vuex进行全局状态管理,实现任意组件间的数据共享和通信。
- 使用v-model实现表单元素和组件的双向数据绑定。
- 使用$refs访问子组件的实例,从而直接操作子组件的数据和方法。
28. 哪个属性和值可以使元素同时具有块级元素和行内元素属性
可以将其display属性设置为inline-block
29. 放在html里的哪一部分js代码会在页面加载的时候被执行
body
30. ['1','2','3'].map(parseInt)返回结果为
1,NaN,NaN
猜你喜欢
- 2024-10-02 Vue3,Vuex,集中式状态(数据)管理,四个模块:state、getter
- 2024-10-02 Vue核心知识:8.4 如何在组件中去使用vuex的值和方法?
- 2024-10-02 Netflix 开源危机管理工具 Dispatch,真香
- 2024-10-02 Vuex基本使用(vuex的基本使用)
- 2024-10-02 vue组件间传递参数的几种方式(vue组件之间的参数传递)
- 2024-10-02 vue前端实现与安卓和ios之间的通信
- 2024-10-02 Vue.js应用的四种AJAX请求数据模式以及优缺点
- 2024-10-02 总结4个方面优化Vue项目(如何优化vue项目)
- 2024-10-02 Node + Express + Mysql + Vue 全栈开发项目:Todo List
- 2024-10-02 Vuex使用指南-Actions(三)(vuex的使用流程)
- 05-11CSS:前端必会的flex布局,我把布局代码全部展示出来了
- 05-11Moti:React Native 动画库的新标杆
- 05-11前端开发避坑指南:每天都能用的 CSS3/Less/Sass 实战技巧
- 05-11HarmonyOS:ArkTS 多态样式自学指南
- 05-115 分钟快速上手图形验证码,防止接口被恶意刷量!
- 05-11网页五指棋游戏
- 05-11告别长文焦虑!AI帮你“秒划重点”,文章秒变知识卡片
- 05-11鸿蒙NEXT小游戏开发:数字华容道
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)