首页 > 其他分享 >前端知识 汇总

前端知识 汇总

时间:2023-11-15 18:24:54浏览次数:48  
标签:Vue 函数 dom 前端 知识 汇总 更改 组件 数据

CORS 

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)跨域资源共享 CORS 详解。看名字就知道这是处理跨域问题的标准做法

CORS背后的思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。

Vue双向绑定原理及实现

Vue内部通过Object.defineProperty方法属性拦截的方式,把data对象里每个数据的读写转化成getter/setter,当数据变化时通知视图更新。

 

js 中常用的设计模式

  设计模式 在面向对象软件设计中针对特定问题的简洁而优雅的解决方案。

工厂方法模式、单例模式、观察者模式、原型模式

发布订阅模式

  发布订阅模式又称观察者模式,它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知。现实生活中,

如我们去售楼中心,服务人员A接待了我们,然后再有客户找到A,这个时候暂时没房了,等到有房的时候不可能服务人员A挨个打电话通知,而是订阅A的

公共服务提醒。

如何在 Vue.js 中使用第三方库

在 Vuejs 项目中使用 JavaScript 库的一个优雅方式是讲其代理到 Vue 的原型对象上去. 按照这种方式, 我们引入 Moment 库:

import moment from 'moment';
Object.defineProperty(Vue.prototype, '$moment', { value: moment });

/*
由于所有的组件都会从 Vue 的原型对象上继承它们的方法, 因此在所有组件/实例中都可以通过 this.$moment: 的方式访问 Moment 而不需要定义全局变量或者手动的引入.
*/

 

权限验证

通过获取当前用户的权限去比对路由表,生成当前用户具的权限可访问的路由表,通过 router.addRoutes 动态挂载到 router 上。

你可以在后台通过一个 tree 控件或者其它展现形式给每一个页面动态配置权限,之后将这份路由表存储到后端。当用户登录后得到 roles,前端根据roles 去向后端请求可访问的路由表,从而动态生成可访问页面,之后就是 router.addRoutes 动态挂载到 router 上,

  

路由懒加载

当打包构建应用时,Javascript 包会变得非常大,影响页面加载速度。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。如:

const Foo = () => import('./Foo.vue')

 

Vue通信组件

 子组件内部通过this.$emit('方法名', 要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用 。

> 子组件内部通过this.$emit('方法名', 要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用。

父子组件最好还是通过props和$emit来通信

1、父与子通信 (props down)
    1.发送
        <son myName='zhangsan'>
        </son>
    2.接受
        到son组件:
        Vue.component('son',{
          props:['myName'],
          template:`
           <p>{{myName}}</p>
          `
        })
    
2、子与父通信 (events up)
     1.绑定
    methods:{
     handleEvent:function(msg){}
    }
    <son @customEvent="handleEvent"></son>
    2.触发
    子组件内部:
    this.$emit(‘customEvent’,100);

3、ref(reference 引用/参考 外号)
 帮助在父组件中 得到子组件中的数据、方法。
    1.指定ref属性
    <son ref="mySon"></son>

    2.根据ref得到子组件实例
    this.$refs.mySon

4、$parent
    this.$parent得到父组件的实例

5、兄弟组件通信
    1.var bus = new Vue();
    2.接收方
    bus.$on('eventName',function(msg){})
    3.发送方
    bus.$emit('eventName',123);

  

Vue生命周期

  1. 实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载ね,只是一个空壳,无法访问到数据和真实的dom,一般不做操作
  2. 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取
  3. 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取
  4. 接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom等事情...
  5. 当组件或实例的数据更改之后,会立即执行beforeUpdate,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染,一般不做什么事儿
  6. 当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dom
  7. 当经过某种途径调用$destroy方法后,立即执行beforeDestroy,一般在这里做一些善后工作,例如清除计时器、清除非指令绑定的事件等等
  8. 组件的数据绑定、监听...去掉后只剩下dom空壳,这个时候,执行destroyed,在这里做善后工作也可以

 

标签:Vue,函数,dom,前端,知识,汇总,更改,组件,数据
From: https://www.cnblogs.com/liliuyu/p/11633885.html

相关文章

  • 了解一下知识付费系统的开发流程和关键技术点
    知识付费系统的开发既涉及到前端用户体验,又需要强大的后端支持和复杂的付费逻辑。在这篇文章中,我们将深入探讨知识付费系统的开发流程和关键技术点,并提供一些相关的技术代码示例。1.需求分析和规划:在着手开发知识付费系统之前,首先需要进行全面的需求分析和规划。明确系统的核心功......
  • Java Mysql 类型为Long 转 前端String
    一、背景JavaMysql类型为Long转前端会丢失精度,在原先基础上补0000;二、实现1.//@JsonSerialize(using=ToStringSerializer.class)但是对我这里是不生效的@JSONField(serializeUsing=com.alibaba.fastjson.serializer.ToStringSerializer.class)生效三、遇......
  • Django实战项目-学习任务系统-文章汇总
    学习任务系统1.0版本已经基本完成了。现在按顺序整理下文章和链接,按照开发时间顺序列举,方便想要完整学习的人。理论上说,按照文章代码可以搭建该系统的70%主体功能,剩下一些小的功能自己参考现有代码学习即可完成。1,Django实战项目-学习任务系统-需求说明https://mp.weixin.qq.co......
  • 第十二章学习笔记、知识完整性总结
    摘要:本章讨论了块设备I/O和缓冲区管理;解释了块设备I/O的原理和I/O缓冲的优点;论述了Unix的缓冲区管理算法,并指出了其不足之处;还利用信号量设计了新的缓冲区管理算法,以提高I/O缓冲区的缓存效率和性能;表明了简单的PV算法易于实现,缓存效果好,不存在死锁和饥饿问题;还提出了一个......
  • 前端小程序接口报错error:60001
    昨天发版过程中发现,测试环境好好的接口到生产就报错了,后台直接接收不到,我们请求的接口根本没有进行后台,查看报错原因如下: 通过排除原因:1.其它接口有没问题2.请求域名是否一致3.请求方式是否一致4.是否有做token限制最后查到原因:其余接口没有问题,......
  • SpringBoot和mybatisPlus得核心知识点
    SpringBoot自动配置(Auto-Configuration):SpringBoot核心特性之一是自动配置。它尝试根据项目的依赖和内容推断应用程序应该如何配置。这简化了开发人员的工作,因为他们无需手动配置大量的设置。起步依赖(StarterDependencies):SpringBoot提供了一系列预配置的依赖项,称为“起......
  • C#6-c#7 知识点使用汇总
    七、C#6.0语法及使用6.0.01usingstatic静态导入指令命名了一种类型,无需指定类型名称即可访问其静态成员和嵌套类型.demo:usingstaticSystem.Console;WriteLine("dennychen");//System.Console.WriteLine("dennychen");6.0.02trycatchwhen异常筛选器:仅在满足某些参......
  • 对前端工程师这个职位的理解
    a. 前端是最贴近用户的程序员,前端的能力就是能让产品从90分进化到100分,甚至更好b. 参与项目,快速高质量完成实现效果图,精确到1px;c.与团队成员,UI设计,产品经理的沟通;d. 做好的页面结构,页面重构和用户体验;e. 处理hack,兼容、写出优美的代码格式;f. 针对服务器的优化、拥抱最新前......
  • C 语言的一些基础知识
    背景在开发过程中,我们经常遇到一些简单的问题,主要原因是C语言基础不扎实,所以这里记录一下遇到的相关问题。 extern关键字的用法https://www.cnblogs.com/TurboLemon/p/6365964.html......
  • Android并发编程高级面试题汇总(含详细解析 四)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......