2024年最全这些 ECMAScript 模块知识,都是我需要知道的(3),2024年最新头条java面试题

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

import * as myModule from ‘./util.js’;

myModule.funcA();

myModule.default();

注意,这里要使用默认到处的方法是使用 default() 而不是 funcB()

从远程模块导入:

import { createStore } from “https://unpkg.com/redux@4.0.5/es/redux.mjs”;

const store = createStore(/* do stuff */)

浏览器中的 ES 模块


现代浏览器支持ES模块,但有一些警告。 要使用模块,需要在 script 标签上添加属性 type, 对应值 为 module

ECMAScript modules in the browser

The result is:

myModule.js 内容如下:

export function appendResult(element) {

const result = Math.random();

element.innerText += result;

}

大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】

动态导入


ES 模块是静态的,这意味着我们不能在运行时更改导入。随着2020年推出的动态导入(dynamic imports),我们可以动态加载代码来响应用户交互(webpack早在ECMAScript 2020推出这个特性之前就提供了动态导入)。

考虑下面的代码:

Dynamic imports

Load!

再考虑一个带有两个导出的JavaScript模块

// util.js

export function funcA() {

console.log(“Hello named export!”);

}

export default function funcB() {

console.log(“Hello default export!”);

}

为了动态导入 util.js 模块,我们可以点击按钮在去导入:

/ loader.js

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

// loads named export

import(“./util.js”).then(({ funcA }) => {

funcA();

});

});

这里使用解构的方式,取出**命名导出 ** funcA 方法:

({ funcA }) => {}

ES模块实际上是JavaScript对象:我们可以解构它们的属性以及调用它们的任何公开方法。

要使用动态导入的默认方法,可以这样做

// loader.js

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

import(“./util.js”).then((module) => {

module.default();

});

});

当作为一个整体导入一个模块时,我们可以使用它的所有导出

// loader.js

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

// loads entire module

// uses everything

import(“./util.js”).then((module) => {

module.funcA();

module.default();

});

});

还有另一种用于动态导入的常见样式,如下所示:

const loadUtil = () => import(“./util.js”);

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

//

});

loadUtil返回的是一个 promise,所以我们可以这样操作

const loadUtil = () => import(“./util.js”);

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

loadUtil().then(module => {

module.funcA();

module.default();

})

})

动态导入看起来不错,但是它们有什么用呢?

使用动态导入,我们可以拆分代码,并只在适当的时候加载重要的代码。在 JavaScript 引入动态导入之前,这种模式是webpack(模块绑定器)独有的。

ReactVue通过动态导入代码拆分来加载响应事件的代码块,比如用户交互或路由更改。

动态导入JSON文件


假设我们项目有一个 person.json 文件,内容如下:

{

“name”: “Jules”,

“age”: 43

}

现在,我们需要动态导入该文件以响应某些用户交互。

因为 JSON 文件不是一个方法,所以我们可以使用默认导出方式:

const loadPerson = () => import(‘./person.json’);

const btn = document.getElementById(“btn”);

btn.addEventListener(“click”, () => {

loadPerson().then(module => {

const { name, age } = module.default;

console.log(name, age);

});

});

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值