最近做一个项目 需要从外部获取到vue实例。如果是通过<script>标签插入一个vue.js 是可以通过window.Vue获取到,但是如果是vuecli的打包项目的话 window上并没有挂载,不知道怎么才能在html【不希望从main.js拿vue做后续操作】 这里拿到当前vue的实例?先谢谢大家了哈
最近做一个项目 需要从外部获取到vue实例。如果是通过<script>标签插入一个vue.js 是可以通过window.Vue获取到,但是如果是vuecli的打包项目的话 window上并没有挂载,不知道怎么才能在html【不希望从main.js拿vue做后续操作】 这里拿到当前vue的实例?先谢谢大家了哈
你还是可以直接通过插入<script>引入vue, 然后直接从window上获取Vue
在index.html上引入vue
// public/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
<title><%= webpackConfig.name %></title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
然后配置externals
// vue.config.js
module.exports = {
...
configureWebpack: {
externals: {
'vue': 'Vue'
}
}
}
然后就可以直接从window.Vue 拿到了
不过你都用vue-cli, 为毛还要在外面拿Vue
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
没有自动挂载到
window
的话就手动把它暴露出来:当然,可以这样做的前提是能改
Vue
应用的代码。如果可以访问到
Vue
类的话,也可以劫持其原型链方法:当然,劫持的不一定是
_render
函数,可能还有其他更好使的函数。