如何在Vue框架下使用普通html中的js代码

项目场景:

对于很多像笔者一样的新手前端开发者,在编写前端代码的时候,大多是边学边写的状态。在做一些个人的、非商业的项目时,我们也许会经常去到各类前端设计网站获取灵感和素材(e.g. https://codepen.io/)。然而在Vue架构下,素材网站的普通的js代码并不能像html一样简单粘贴,网上相关解决办法也比较少,笔者进行相关探索后总结经验如下。


问题描述

如何在Vue框架下使用普通html中的js代码:

解决方案:

首先我们要创建一个.vue文件来表示这个组件,把html和css写在这里

<template>
  <div></div>
</template>

<script>
export default {
}
</script>

<style scoped>
</style>

找到vue项目中public文件夹下的index.html,在<body></body>中添加标签<script id=“rendered-js” type=“module”><script>,把要使用的js代码粘贴到标签下就好了。

<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <script id="rendered-js" type="module">
  	//TODO: Your js code
  </script>
</body>

举个例子

假设我们想在项目中使用如下素材:https://codepen.io/jaredstanley/pen/qBKNNWg

在这里插入图片描述

我们先新建一个Test.vue,将html和css复制过去。
注意: 这个示例html代码中也有js代码,将一并归到js里,不在Test.vue中写

<template>
  <div>
    <canvas class="webgl"></canvas>
  </div>
</template>

<script>
export default {
}
</script>

<style scoped>
.webgl
{
    position: fixed;
    top: 0;
    left: 0;
    outline: none;
}

</style>

然后找到index.html将js代码全部粘贴过去

<script id="rendered-js" type="module">
    import * as THREE from "https://cdn.skypack.dev/three@0.146.0";
    import { OrbitControls } from '//cdn.skypack.dev/three@0.125.0/examples/jsm/controls/OrbitControls.js?min'
    import * as datGui from "https://cdn.skypack.dev/dat.gui@0.7.9";
    
    //TODO: 左侧html框中的<script>部分
    //TODO: 右侧js除import外剩余所有
</script>

运行 npm run serve
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值