美文网首页
前端框架复习相关

前端框架复习相关

作者: 隨颩洏萣 | 来源:发表于2020-06-27 16:54 被阅读0次
1、ES6的新特性及其作用

(1)、let和const
a、let
与var类似,但只在let命令所在的代码块内有效
b、const
const声明的只是一个只读的常量,一旦声明,常量的值就不能改变,常量名大写
(2)、数值的扩展
a、Nummber.isFinite():用来检查一个数值是否属实有限的

Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite('hello');  // false
Number.isFinite(true);  // false

b、Number.isNaN():用来检查一个值是否为NaN
c、Number.parseInt()
d、Number.parseFloat()
e、Number.isInteger():判断一个数值是否是整数
(3)、数组的扩展
a、Array.from():将一个类似数组的最想转为真正的数组
b、Array.of():将一组值转化为数组
c、find()

2、MVVM的基本概念

MVVM(Model-View-ViewModel)是一个软件架构设计模式,是一种简化用户界面的事件驱动编程方式。
View:视图层,也就是用户界面,前端主要由HTML和CSS来搭建
Model:数据模型,泛指后端进行的各种业务逻辑处理和数据操控,对于前端来说就是后端提供的api接口
ViewModel:由前端开发人员组织生成和维护的视图数据层。

3、Vue的单向数据流

所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。

4、Vue的常用指令和用法

v-if(判断是否隐藏)
v-for(把数据遍历出来)
v-bind(绑定属性)
v-model(实现双向绑定)

5、Vue的生命周期

总共分为 8 个阶段创建前/后,载入前/后,更新前/后,销毁前/后。
创建前/后: 在 beforeCreate 阶段,vue 实例的挂载元素 el 还没有。
载入前/后:在 beforeMount 阶段,vue 实例的$el 和 data 都初始化了,但还是挂载之前为虚拟的 dom 节点,data.message 还未替换。在 mounted 阶段,vue 实例挂载完成,data.message 成功渲染。
更新前/后:当 data 变化时,会触发 beforeUpdate 和 updated 方法。
销毁前/后:在执行 destroy 方法后,对 data 的改变不会再触发周期函数,说明此时 vue 实例已经解除了事件监听以及和 dom 的绑定,但是 dom 结构依然存在

6、Vue组件间通信的几种方式
//父组件通过标签上面定义传值
<template>
    <Main :obj="data"></Main>
</template>
<script>
    //引入子组件
    import Main form "./main"

    exprot default{
        name:"parent",
        data(){
            return {
                data:"我要向子组件传递数据"
            }
        },
        //初始化组件
        components:{
            Main
        }
    }
</script>


//子组件通过props方法接受数据
<template>
    <div>{{data}}</div>
</template>
<script>
    exprot default{
        name:"son",
        //接受父组件传值
        props:["obj"]
    }
</script>
//子组件通过$emit方法传递参数
<template>
   <div @event="events"></div>
</template>
<script>
    //引入子组件
    import Main form "./main"

    exprot default{
        methods:{
            events:function(params){
              console.log(params)
            }
        }
    }
</script>

<template>
    <div v-on:click="emitEvent">{{data}}</div>
</template>
<script>
    exprot default{
        name:"son",
        //接受父组件传值
        props:["data"],
        methods: {
          emitEvent() {
            this.$emit('event', params) // 派发函数,并传递值,params是你自己想传的值
          }
        }
    }
</script>
7、组件中的data为什么是一个函数

因为组件是用来复用的,且 JS 里对象是引用关系,如果组件中 data 是一个对象,那么这样作用域没有隔离,子组件中的 data 属性值会相互影响,如果组件中 data 选项是一个函数,那么每个实例可以维护一份被返回对象的独立的拷贝,组件实例之间的 data 属性值不会互相影响;而 new Vue 的实例,是不会被复用的,因此不存在引用对象的问题。

8、Vue如何实现数据双向绑定的

vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。

9、Vue-router路由模式

vue-router 有 3 种路由模式:hash、history、abstract

switch (mode) {
  case 'history':
    this.history = new HTML5History(this, options.base)
    break
  case 'hash':
    this.history = new HashHistory(this, options.base, this.fallback)
    break
  case 'abstract':
    this.history = new AbstractHistory(this, options.base)
    break
  default:
    if (process.env.NODE_ENV !== 'production') {
      assert(false, `invalid mode: ${mode}`)
    }
}
10、Vuex的基本概念、如何使用、使用场景

基本概念:vue 框架中状态管理。
如何使用:在 main.js 引入 store,注入。新建了一个目录 store,….. export 。
使用场景:单页应用中,组件之间的状态。音乐播放、登录状态、加入购物车

11、什么是服务器渲染(SSR)?为什么要使用SSR?

基本概念:vue在客户端将标签渲染成的整个 html 片段的工作在服务端完成,服务端形成的html 片段直接返回给客户端这个过程就叫做服务端渲染。
使用原因:
a、更好的 SEO:
因为 SPA 页面的内容是通过 Ajax 获取,而搜索引擎爬取工具并不会等待 Ajax 异步完成后再抓取页面内容,所以在 SPA 中是抓取不到页面通过 Ajax 获取到的内容;而 SSR 是直接由服务端返回已经渲染好的页面(数据已经包含在页面中),所以搜索引擎爬取工具可以抓取渲染好的页面;
b、更快的内容到达时间(首屏加载更快):
SPA 会等待所有 Vue 编译后的 js 文件都下载完成后,才开始进行页面的渲染,文件下载等需要一定的时间等,所以首屏渲染需要一定的时间;SSR 直接由服务端渲染好页面直接返回显示,无需等待下载 js 文件及再去渲染等,所以 SSR 有更快的内容到达时间;

12、computed和watch的区别以及使用场景

区别:

computed: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值;
watch: 更多的是「观察」的作用,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调进行后续操作;

使用场景:
computed:当我们需要进行数值计算,并且依赖于其它数据时
watch:当我们需要在数据变化时执行异步或开销较大的操作时

13、Vue遍历数组及功能

foreach:for循环
filter:根据条件过滤
findIndex:查询元素的下标
some:判断数组中是否存在满足条件的项,只要有一项满足条件就会返回true,剩余的元素不会再执行检

14、为什么要使用路由懒加载?如何实现?

原因:给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。
实现方式:

//不进行页面按需加载引入方式:
import  home   from '../../common/home.vue'
//进行页面按需加载的引入方式:
const  home = r => require.ensure( [], () => r (require('../../common/home.vue')))
15、FormData和Payload两种传输数据的格式的区别,以及适用的场景

区别:FormData和Payload是浏览器传输给接口的两种格式,这两种方式浏览器是通过Content-Type来进行区分的
formdata:application/x-www-form-urlencoded
payload:application/json或multipart/form-data
适用场景:
formdata:Form表单提交
payload:axios方式提交

16、ES6的数组的使用方法

**map:循环遍历每一项然后可以对每一项进行修改
arr.map(item=>item+'a')
reduce:对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
const reducer = (accumulator, currentValue) => accumulator + currentValue;
arr.reduce(reducer);
forEach:对数组进行遍历循环,对数组的每一项运行给定函数
arr.forEach(function(value,index){})
filter:过滤掉不符合条件的,剩下符合条件的
arr.filter(args=>{})
push:将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
arr.push('a')
splice:删除下标为index的1个元素
arr.splice(index,1)

17、Vue指令的使用

v-bind:
v-model:
v-for:
v-if:
事件监听及事件处理方法:

<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成  -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>
18、Vue组件和路由的设计
组件的概念及创建方法

概念:组件就是可以扩展HTML元素,封装可重用的HTML代码,可以将组件看作自定义的HTML元素。
创建方法:

<template>
  <button
    :style="{ backgroundColor: color, fontSize: fontSize + 'px' }"
    :class="'my-btn ' + size"
    :disabled="disabled"
    @click="handleClick"
  >
    <slot></slot>
  </button>
</template>

<script>
function oneOf(value, validList) {
  for (let i = 0; i < validList.length; i++) {
    if (value === validList[i]) {
      return true;
    }
  }
  console.log("size参数错误");
  return false;
}
export default {
  name: "MyButton",
  props: {
    size: {r(value) {
        return oneOf(value, ["small", "middle", "large", "default"]);
      },
      validato
      default: "default",
    },
    disabled: {
      type: Boolean,
      default: false,
    },
    color: {
      type: String,
      // 默认为背景色为蓝色
      default: "#1E90FF",
    },
    fontSize: {
      type: String,
      // 字体大小默认为14px
      default: "14",
    },
  },
  methods: {
    handleClick(event) {
      this.$emit("on-click", event);
    },
  },
};
</script>
<style type="scss" scoped>
[class^="my-btn"] {
  border: none;
  outline: none;
  cursor: pointer;
  border-radius: 5px;
}
.small {
  width: 80px;
  height: 30px;
}
.middle {
  width: 100px;
  height: 40px;
}
.defaule {
  width: 120px;
  height: 40px;
}
.large {
  width: 280px;
  height: 60px;
}
</style>
路由
import Vue from "vue";
import VueRouter from "vue-router";
import Index from "../views/Index.vue";
import Covid from "../views/Covid.vue";

Vue.use(VueRouter);

const routes = [
  {
    path: "/",
    name: "Index",
    component: Index,
     children: [
      {
        path: "/covid",
        name: "Covid",
        component: Covid
      },
    ]
  },
const router = new VueRouter({
  routes
});

export default router;

相关文章

  • 前端框架复习相关

    1、ES6的新特性及其作用 (1)、let和consta、let与var类似,但只在let命令所在的代码块内有效b...

  • 后端框架复习相关

    1、Spring的基本概念及其优点 基本概念:Spring是分层的java SE/EE应用一站式的轻量级开源框架,...

  • 前端框架相关知识

    什么是 MVVM,比之 MVC 有什么区别? 什么是 Virtual DOM,为什么 Virtual DOM 比原...

  • 浅谈React Fiber

    背景 前段时间准备前端招聘事项,复习前端React相关知识;复习React16新的生命周期:弃用了componen...

  • 解读 React Fiber

    背景 前段时间准备前端招聘事项,复习前端React相关知识;复习React16新的生命周期:弃用了componen...

  • 好程序员web前端培训教程分享三大前端框架相关问题

    好程序员web前端培训教程分享三大前端框架相关问题,三大前端框架,有没有哪个框架的组件间交互像js的方法传值一样简...

  • 无标题文章

    1.这个月复习了VUE 的相关知识点 然后将之前不是太懂的知识点补了起来 Vue是国人开发的一款前端框架,他是利用...

  • 【重温基础】1.语法和数据类型

    最近开始把精力放在重新复习JavaScript的基础知识上面,不再太追求各种花枝招展的前端框架,框架再多,适合实际...

  • Web前端状态管理

    前端状态管理是很多流行框架统一在做的事,翻开官方文档都有相关的介绍。React框架有Redux,Vue框架有Vue...

  • 前端面试(一)

    前端面试的门槛越来越高,前端的知识点多而零散,前端框架层出不穷,怎么做才能全面的复习知识,怎么做才能掌握前端技能,...

网友评论

      本文标题:前端框架复习相关

      本文链接:https://www.haomeiwen.com/subject/xfxvfktx.html