Pat*_*han 5 javascript export vue.js vue-component vuejs2
我有一个外部Java脚本文件 something.js
function myFun(){
document.getElementById("demo").innerHTML="Hello World!";
}
export default myFun;
Run Code Online (Sandbox Code Playgroud)
这是我的Vue组件 Dashboard.vue
<template>
<div>
<button type="button" name="button" @click="">Call External JS</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
created(){
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我有两个问题。
因为我知道更改div的内容很容易由vueJS完成,而无需纯JS外部文件的帮助。但是我在问这个问题,以阐明如何在vue组件中使用外部JS文件的概念。
谢谢。
kin*_*aro 13
您可以something在任何您想要的生命周期方法下调用导入的函数。在这里,我建议使用该mounted方法。一旦组件的所有 HTML 都已呈现,就会触发。
可以something在 vue 组件的方法下添加函数,然后直接从模板中调用该函数。
<template>
<div>
<button type="button" name="button" @click="something">
Call External JS
</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
mounted() {
something()
},
methods: {
something,
},
}
</script>
Run Code Online (Sandbox Code Playgroud)
更好的解决方案是使用mixins:
import something from './something.js'
export default {
mixins: [something]
}
Run Code Online (Sandbox Code Playgroud)
现在你可以使用任何方法/计算机已在出口something.js上,直接this。
因此,在您的示例中,您已从myFun()导出了内容something.js,我们可以这样称呼它Dashboard.vue:
<template>
<div>
<button type="button" name="button" @click="myFun">Call External JS</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
mixins: [something],
mounted(){
this.myFun()
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我希望语法正确,但这通常是mixin的想法。
小智 7
另一种方法是在数据块中添加方法:
import something from "./something.js" // assuming something is a function
data() {
return {
// some data...
something,
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中使用它,例如:
<template>
<div class="btn btn-primary" @click="something">Do something</div>
</template>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12788 次 |
| 最近记录: |