为什么需要在body标签中添加Vue.js

时间:2017-06-09 01:12:48

标签: javascript html vue.js

我在标题中添加了我的vue.js,但是有一个错误,指出元素root无法找到,因为我有一个id为 root

但是当我将它添加到身体上时,一切正常。

这是我的js代码。

new Vue({
     el: '#root'
});

这是我的HTML。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
	
    <script src="https://unpkg.com/vue@2.1.3/dist/vue.js"></script>
</head>
<body>

<div id="root">

    <task-list>


    </task-list>


</div>


</body>
</html>

2 个答案:

答案 0 :(得分:7)

您需要在身体的底部导入您的vue js库,因为您需要首先加载#app HTML容器才能通过vue js进行分析。

<body>

<div id="app">
</div>
<script src="vue.js"></script>

</body>

答案 1 :(得分:1)

嗨我在你的html中没有看到任何包含的js(vue包除外)。但我认为解决方案是将脚本放在页脚中。

如果这不起作用,请将其放在import java.util.LinkedList; import java.util.Queue; import javafx.animation.AnimationTimer; import javafx.animation.Animation; import javafx.animation.Transition; import javafx.application.Application; import javafx.geometry.Point3D; import javafx.scene.Group; import javafx.scene.PerspectiveCamera; import javafx.scene.Scene; import javafx.scene.input.MouseEvent; import javafx.scene.input.ScrollEvent; import javafx.scene.paint.Color; import javafx.scene.paint.PhongMaterial; import javafx.scene.shape.Box; import javafx.scene.shape.DrawMode; import javafx.scene.shape.Sphere; import javafx.scene.transform.Rotate; import javafx.scene.transform.Transform; import javafx.stage.Stage; import javafx.util.Duration; /** * @see https://stackoverflow.com/a/44447913/230513 * @see https://stackoverflow.com/a/37755149/230513 * @see https://stackoverflow.com/a/37743539/230513 * @see https://stackoverflow.com/a/37370840/230513 */ public class TriadBox extends Application { private static final double SIZE = 300; private final Content content = Content.create(SIZE); private double mousePosX, mousePosY, mouseOldX, mouseOldY, mouseDeltaX, mouseDeltaY; private static final class Content { private static final double WIDTH = 3; private static final Color LITE = Color.RED; private static final Color DARK = Color.RED.darker().darker(); private final Xform group = new Xform(); private final Group cube = new Group(); private final Group axes = new Group(); private final Box xAxis; private final Box yAxis; private final Box zAxis; private final Box box; private final Sphere sphere; private final PhongMaterial redMaterial = new PhongMaterial(); private final UpdateTimer timer = new UpdateTimer(); private class UpdateTimer extends AnimationTimer { private static final double N = 32d; private final Queue<Color> clut = new LinkedList<>(); public UpdateTimer() { for (int i = 0; i < N; i++) { clut.add(Color.hsb(LITE.getHue(), 1, 1 - (i / N))); } for (int i = 0; i < N; i++) { clut.add(Color.hsb(LITE.getHue(), 1, i / N)); } } @Override public void handle(long now) { redMaterial.setSpecularColor(clut.peek()); clut.add(clut.remove()); } } private final Animation animation = new Transition() { { setCycleDuration(Duration.millis(1000)); setAutoReverse(true); setCycleCount(INDEFINITE); } @Override protected void interpolate(double d) { redMaterial.setSpecularColor(Color.hsb(LITE.getHue(), 1, d)); redMaterial.setDiffuseColor(Color.hsb(DARK.getHue(), 1, d / 2)); } }; private static Content create(double size) { Content c = new Content(size); c.cube.getChildren().addAll(c.box, c.sphere); c.axes.getChildren().addAll(c.xAxis, c.yAxis, c.zAxis); c.group.getChildren().addAll(c.cube, c.axes); return c; } private Content(double size) { double edge = 3 * size / 4; xAxis = createBox(edge, WIDTH, WIDTH, edge); yAxis = createBox(WIDTH, edge / 2, WIDTH, edge); zAxis = createBox(WIDTH, WIDTH, edge / 4, edge); box = new Box(edge, edge / 2, edge / 4); box.setDrawMode(DrawMode.LINE); sphere = new Sphere(8); redMaterial.setDiffuseColor(DARK); redMaterial.setSpecularColor(LITE); sphere.setMaterial(redMaterial); sphere.setTranslateX(edge / 2); sphere.setTranslateY(-edge / 4); sphere.setTranslateZ(-edge / 8); } private Box createBox(double w, double h, double d, double edge) { Box b = new Box(w, h, d); b.setMaterial(new PhongMaterial(Color.AQUA)); b.setTranslateX(-edge / 2 + w / 2); b.setTranslateY(edge / 4 - h / 2); b.setTranslateZ(edge / 8 - d / 2); return b; } } private static class Xform extends Group { private final Point3D px = new Point3D(1.0, 0.0, 0.0); private final Point3D py = new Point3D(0.0, 1.0, 0.0); private Rotate r; private Transform t = new Rotate(); public void rx(double angle) { r = new Rotate(angle, px); this.t = t.createConcatenation(r); this.getTransforms().clear(); this.getTransforms().addAll(t); } public void ry(double angle) { r = new Rotate(angle, py); this.t = t.createConcatenation(r); this.getTransforms().clear(); this.getTransforms().addAll(t); } public void rz(double angle) { r = new Rotate(angle); this.t = t.createConcatenation(r); this.getTransforms().clear(); this.getTransforms().addAll(t); } } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("JavaFX 3D"); Scene scene = new Scene(content.group, SIZE * 2, SIZE * 2, true); primaryStage.setScene(scene); scene.setFill(Color.BLACK); PerspectiveCamera camera = new PerspectiveCamera(true); camera.setFarClip(SIZE * 6); camera.setTranslateZ(-2 * SIZE); scene.setCamera(camera); scene.setOnMousePressed((MouseEvent e) -> { mousePosX = e.getSceneX(); mousePosY = e.getSceneY(); mouseOldX = e.getSceneX(); mouseOldY = e.getSceneY(); }); scene.setOnMouseDragged((MouseEvent e) -> { mouseOldX = mousePosX; mouseOldY = mousePosY; mousePosX = e.getSceneX(); mousePosY = e.getSceneY(); mouseDeltaX = (mousePosX - mouseOldX); mouseDeltaY = (mousePosY - mouseOldY); if (e.isShiftDown()) { content.group.rz(-mouseDeltaX * 180.0 / scene.getWidth()); } else if (e.isPrimaryButtonDown()) { content.group.rx(+mouseDeltaY * 180.0 / scene.getHeight()); content.group.ry(-mouseDeltaX * 180.0 / scene.getWidth()); } else if (e.isSecondaryButtonDown()) { camera.setTranslateX(camera.getTranslateX() - mouseDeltaX * 0.1); camera.setTranslateY(camera.getTranslateY() - mouseDeltaY * 0.1); } }); scene.setOnScroll((final ScrollEvent e) -> { camera.setTranslateZ(camera.getTranslateZ() + e.getDeltaY()); }); primaryStage.show(); //content.timer.start(); content.animation.play(); } public static void main(String[] args) { launch(args); } }

window.onload