Comments (5)
The current Vue context is not available in setup(), it's available in onMounted().
import axios, { AxiosInstance } from 'axios'
export default async ({ Vue }) => {
Vue.prototype.$axios = axios
}
declare module 'vue/types/vue' {
interface Vue {
$axios: AxiosInstance;
}
interface VueConstructor {
$axios: AxiosInstance;
}
}
Component:
import { onMounted, createComponent } from 'vue-function-api'
export default createComponent({
setup (props, context) {
let axios
//...
onMounted(function (this: Vue) {
axios = this.$axios
})
}
})
Alternative:
import axios from 'axios';
import VueAxios from 'vue-axios';
import { VueConstructor } from 'vue';
export default async ({ Vue }: { Vue: VueConstructor }) => {
Vue.use(VueAxios, axios);
};
declare module '*.vue' {
export default Vue
}
import { onMounted, createComponent } from 'vue-function-api'
export default createComponent({
setup (props, context) {
let axios
//...
onMounted(function (this: Vue) {
axios = this.axios
})
}
})
from composition-api.
import Vue from 'vue';
import axios from 'axios'
Vue.prototype.$axios = axios
export default createComponent({
setup (props, context) {
let axios = context.root.$axios;
// ...
}
})
from composition-api.
Are you sure you have extended the Vue.prototype
?
from composition-api.
Collateral question: is context.root
the element root or, as per previous API, the component tree root?
Until now we "littered" Vue prototype to easily access some globals ($axios, $vuex, etc), but this feels wrong with new function API, not being able to get $el
from context and not being able to add those shortcuts to the context object itself.
Does it mean we should abandon Vue augmentation and only use VueConstructor augmentation, with stuff like Vue.axios.get()
and similar?
from composition-api.
It should work if you properly extends the Vue.prototype
.
from composition-api.
Related Issues (20)
- Typing component refs HOT 2
- onMounted is called when there is no active component instance to be associated with HOT 7
- Variables created with ref in <templete>,do not automatically expand value HOT 4
- why setup run twice in vue2 HOT 8
- setup function provide a wrong prop type,when use type: Function HOT 3
- not work nice in web component, no error HOT 2
- How to avoid duplicate register composition-api ? HOT 1
- It doesn't work with nuxt 2 HOT 2
- watch 的回调如果发生错误,会一直触发调用 HOT 1
- ComponentRenderProxy类型与Vue不兼容,导致Ts编译报错 HOT 2
- vue2项目, 怎么在option API的基础上, 混用composition API? HOT 1
- render 函数中使用 web components 自定义标签,移除了HTML中原生的 slot 属性 HOT 3
- No support for Vue >= 2.7
- cdn方式引入导致vue devtools调试数据丢失 HOT 2
- 客户端使用vuecli 打包出来的commonjs模式的库,出现“Error: [vue-composition-api] must call Vue.use(VueCompositionAPI) before using any functio” HOT 2
- setup返回的data在development环境下会被expose到全局mixin的data中 HOT 2
- 是否有提供withDefaults?
- 安装时,报vue版本范围错误 HOT 2
- 【Bug】Memory Leak cause by toVue3ComponentInstance HOT 1
- 【BUG】watch() 传入reactive类型的数据,vue3.4与3.3表现不一致 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from composition-api.