Vuejs2 使用Vue插件
我不熟悉使用Vue。我正试着把注意力集中在插件上。我坚持使用的是我添加到插件中的组件及其方法: 组件:Rest.vueVuejs2 使用Vue插件,vuejs2,Vuejs2,我不熟悉使用Vue。我正试着把注意力集中在插件上。我坚持使用的是我添加到插件中的组件及其方法: 组件:Rest.vue ... export default { name: 'rest', data () { return { } }, methods: { gplFetch: function(query){ ... return ...; } } } ... 插件:全局插件 import Rest from ‘@
...
export default {
name: 'rest',
data () {
return {
}
},
methods: {
gplFetch: function(query){
...
return ...;
}
}
}
...
插件:全局插件
import Rest from ‘@/components/Rest.vue’
export default {
install(Vue, options) {
Vue.component(Rest.name, Rest)
Vue.mixin({
created() {
console.log('rest created');
}
})
Vue.prototype.$gplFetch = function(query){
return <Access Rest component>.gplFetch(query);
}
}
}
我一直关注的是如何访问上面代码中的gplFetch:
return <Access Rest component>.gplFetch(query);
return.gplFetch(查询);
为了使代码正常工作,应
return Rest.methods.gplFetch(query);
但我建议采取另一种方法,创建一个包含gplFetch
函数的模块(或者一个API模块),并将该方法导入插件和Rest.vue
组件
gplFetch.js
export function gplFetch(query){
// do something with query
}
import {gplFetch} from "./gplFetch.js"
export default {
install(Vue, options) {
Vue.component(Rest.name, Rest)
Vue.mixin({
created() {
console.log('rest created');
}
})
Vue.prototype.$gplFetch = function(query){
return gplFetch(query);
}
}
}
Rest.vue
import {gplFetch} from "./gplFetch.js"
export default {
name: 'rest',
data () {
return {
}
},
methods: {
gplFetch
}
}
global plugin.js
export function gplFetch(query){
// do something with query
}
import {gplFetch} from "./gplFetch.js"
export default {
install(Vue, options) {
Vue.component(Rest.name, Rest)
Vue.mixin({
created() {
console.log('rest created');
}
})
Vue.prototype.$gplFetch = function(query){
return gplFetch(query);
}
}
}
当然,所有这些都假设
gplFetch
不依赖于Rest.vue
实例中的任何数据,因为如果它依赖于Rest.vue,那么从一开始就无法从插件中工作。非常感谢。你给出了一个解决方案,但你也提供了一个我决定采用的更好的解决方案。你太棒了:)