gpt4 book ai didi

javascript - 这段代码中的 “export default class Render”是什么,为什么要导出和使用它?

转载 作者:行者123 更新时间:2023-12-03 12:32:43 24 4
gpt4 key购买 nike

这是我第一次尝试使用具有django背景的C/C++/Python创建 Electron 应用程序,但我不太了解这段代码中发生了什么。是从这里的这个仓库。 https://github.com/justinctlam/BabylonJS-Electron/blob/master/src/renderer.ts
为什么要导出同一脚本文件中使用的类?
这是 Electron 的必要条件吗?

import * as BABYLON from 'babylonjs';

export default class Renderer {
private _canvas: HTMLCanvasElement;
private _engine: BABYLON.Engine;
private _scene: BABYLON.Scene;

createScene(canvas: HTMLCanvasElement, engine: BABYLON.Engine) {
this._canvas = canvas;

this._engine = engine;

// This creates a basic Babylon Scene object (non-mesh)
const scene = new BABYLON.Scene(engine);
this._scene = scene;

// This creates and positions a free camera (non-mesh)
const camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);

// This targets the camera to scene origin
camera.setTarget(BABYLON.Vector3.Zero());

// This attaches the camera to the canvas
camera.attachControl(canvas, true);

// This creates a light, aiming 0,1,0 - to the sky (non-mesh)
const light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), scene);

// Default intensity is 1. Let's dim the light a small amount
light.intensity = 0.7;

// Our built-in 'sphere' shape. Params: name, subdivs, size, scene
const sphere = BABYLON.Mesh.CreateSphere("sphere1", 16, 2, scene);

// Move the sphere upward 1/2 its height
sphere.position.y = 1;

// Our built-in 'ground' shape. Params: name, width, depth, subdivs, scene
const ground = BABYLON.Mesh.CreateGround("ground1", 6, 6, 2, scene);
}

initialize(canvas: HTMLCanvasElement) {
const engine = new BABYLON.Engine(canvas, true);
this.createScene(canvas, engine);

engine.runRenderLoop(() => {
this._scene.render();
});

window.addEventListener('resize', function () {
engine.resize();
});
}
}

const renderer = new Renderer();
renderer.initialize(document.getElementById('render-canvas') as HTMLCanvasElement);

最佳答案

当您使用同一文件时,可以使用不导出的类。但是,添加导出的目的是在导入的帮助下由其他程序重用您的代码。
导出有两种类型,一种称为导出,另一种是默认导出。
在示例中,您使用了默认导出。默认导出对于导出单个对象,函数或变量很有用。您可以在导入时使用任何名称时间。
就像您的情况一样,您可以导入

import Render from './renderer';
在这里,我假设您已将此文件保存在renderer.js文件中。您可以看到我在导入时使用的名称是Render not Renderer。我之所以能够这样做,是因为该类正在使用默认导出。
要了解更多信息,请单击 import export

关于javascript - 这段代码中的 “export default class Render”是什么,为什么要导出和使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64148007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com