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模块,但有一些警告。 要使用模块,需要在 script
标签上添加属性 type
, 对应值 为 module
。
The result is:
myModule.js
内容如下:
export function appendResult(element) {
const result = Math.random();
element.innerText += result;
}
大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。
ES 模块是静态的,这意味着我们不能在运行时更改导入。随着2020年推出的动态导入(dynamic imports),我们可以动态加载代码来响应用户交互(webpack早在ECMAScript 2020推出这个特性之前就提供了动态导入)。
考虑下面的代码:
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(模块绑定器)独有的。
像React
和Vue
通过动态导入代码拆分来加载响应事件的代码块,比如用户交互或路由更改。
假设我们项目有一个 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 有哪几种属性?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】