失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > vue3组合式api基础(常用)

vue3组合式api基础(常用)

时间:2023-01-24 10:01:05

相关推荐

vue3组合式api基础(常用)

vue3组合式api基础(常用)

前言:vue3中尽量不要使用‘this’,最好使用组合式api(Composition API),如果使用uni-app的,vue3只支持ios>=10(),安卓4.4版本()

1.使用store

import {useStore } from 'vuex'const store = useStore()//我这里仅获取state和mutations//获取state我用的是computedconst jwq = computed( ()=> {//里面user为我的module,不是单独引入的可以不加return store.state.user.token})mit('user/setToken' , res.data.token) //setToken为我mutations中的方法名

2.使用router

import {useRouter } from 'vue-router'const router = useRouter()//使用方法和vue2一致,例如:router.push( {name : 'home' } )

3.创建对象

import {reactive , ref } from "vue";const jwq = reactive({name : 'jwq',age : 24}) const zhn = ref(null)//reactive的取值方式就是jwq.name、jwq.age//ref的取值方式 zhn.value

4.使用全局变量

//例如:在main.js中配置了全局变量$httpimport * as http from './lib/axios.js' //这个http为我的请求配置文件const app=createApp(App)app.config.globalProperties.$http=http//如何在页面使用这个$http呢?使用vue提供的 getCurrentInstanceimport {getCurrentInstance } from "vue";const currentInstance = getCurrentInstance()const {$http } = currentInstance.appContext.config.globalProperties//使用$http.post('/api/sys/login',{loginname: 'admin',password: '123',}).then(({data:res}) => {if(res.code===0){console.log('请求成功')}})

5.单文件组件父子传值 <script setup

<!-- son为子组件 fat为父组件 --><!-- fat.vue --><template><son :navList="navList" @handle="handleClick"></son></template><script setup>const handleClick = (data)=> {console.log(data)}</script><!--son.vue--><template><button @click="btn">点击</button></template>import {defineProps,defineEmits} from 'vue'<script setup>const props=defineProps({navList: {type:Array,default(){return []}},})//获取值使用 props.navListconst emit = defineEmits(['handle']);const btn = () => {emit('handle', 'jwq')}//父组件直接访问子组件的值//暴露数据参数,或者方法defineExpose({navList})//在父组件采用 ref的访问方式如fat.value.navList//如果使用父孙组件传值//父组件import { provide } from "vue";provide('reload', 100)//孙组件import { inject } from "vue"; inject('reload') </script>

6.环境变量使用

.env.development文件下VITE_NAME='development'.env.production文件下VITE_NAME='production'

//使用方法//1.在vue文件中import.meta.env.VITE_NAME//2.在vue.config.js的配置文件中import {defineConfig,loadEnv } from 'vite'loadEnv(mode, process.cwd()).VITE_NAME==='production'

7.异步使用

import {nextTick } from "vue";nextTick(()=>{//要执行的异步代码})

8、ref的使用(vue3和vue2的区别)

//在vue2中你可以使用this.$refs.***获取//但是在vue3的setup中并没有这些东西,他是采用ref的方式获取,而且必须在onMounted中,假设ref为jwqimport {ref, onMounted} from "vue";const jwq = ref( null )onMounted(()=>{console.log(jwq.value);})

9、过滤器的替代(vue3和vue2的区别)

//在vue2中你可以使用过滤器来实现你想要的给你//但是vue3已经去掉了过滤器,那么就要采用替代的方式,比如说时间过滤{{time | stampToTime }} //vue2的方式{{stampToTime(time) }} //vue3的方式//vue3中你可以采用在setup中写方法的方式,实现替代

如果觉得《vue3组合式api基础(常用)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。