javascript - 从其他文件混合 Vue 中的方法
问题描述
我想在文件之间共享 Vue 中的一个方法。我尝试了不同的建议(在谷歌之后),但没有让它工作。我让 mixin 在同一个文件中工作 - 但不是从其他文件导入。
这是有效的(就在脚本标签下的导入部分之后):
// import ipsecMixin from '../shared'
var ipsecMixin = {
methods: {
IpsecKodeRemote: function(
[kode here...]
....
export default {
name: 'MurSerit',
props: {
....
},
mixins: [ipsecMixin],
computed: {
但随后我尝试将代码移动到外部文件(并如您在上面示例中注释掉的部分中看到的那样导入):
var ipsecMixin = {
methods: {
IpsecKodeRemote: function(
[kode here...]
export { ipsecMixin }
我收到组件错误。
vue.runtime.esm.js?2b0e:587 [Vue warn]: Error in render: "TypeError: Cannot read property 'components' of undefined"
found in
---> <Modl2l> at src/components/Modl2l.vue
<Form> at src/components/Form.vue
<HelloWorld> at src/components/HelloWorld.vue
<Home> at src/views/Home.vue
<App> at src/App.vue
<Root>
为什么,以及如何解决?
解决方案
如果您要像这样导出显式变量:
export { ipsecMixin }
您还需要将其作为变量导入:
import { ipsecMixin } from '../shared'
您还可以像这样使用默认导入/导出:
// in shared.js
export default ipsecMixin = {
methods: {
IpsecKodeRemote: function(){},
}
}
// in your component file
import myIpSecMixin from '../shared'
请注意,在默认的导入/导出中,您可以根据需要为导入命名,但是在导出显式变量名称时,您还必须将其引用为相同的名称。
您可能想看看如何在此处使用 es6 导入
推荐阅读
- android - 无法更改 tabItem (程序崩溃),当我用代码删除我的 tabItems 之一
- kubernetes - 使rabbitmq集群可公开访问
- doxygen - 如何在 html 文档中的多个版本之间进行选择?
- python - 有没有办法清除 VSCode 中的模块?
- python - 从 def 函数中的 .txt 文件中删除所有数字-Python 3
- android - cordova-plugin-ionic-webview - 自定义方案不适用于 Android
- javascript - 将事件处理程序附加到动态生成的元素
- python - 具有多个左连接的 ORM 查询
- python-2.7 - 重复使用与上一个问题相同的值。哪个函数包含错误?
- python-3.x - 移动唯一计数计算 Pandas DataFrame