首先,讲解一下vuex,v2和v3在vuex的使用上一样,差别主要是在版本上,vue2中的vuex的版本必须是4版本以下,而v3的vuex的版本必须是4版本及以上
cnpm i vuex@4 --save
src中先创建一个store文件夹,文件夹中创建一个index.js文件
index.js导入vuex中需要使用的依赖包createStore()
createStore创建一个vuex的对象抛出即可
main.js中直接导入这个对象即可
//1. 导入依赖
//导入vuex的函数内容
import {createStore} from "vuex";//调用函数进行配置
const store = createStore({state:{num:100,},mutations:{plus(state){state.num++;}},getters:{},actions:{},modules:{},//分模块// plugins:[],
})//抛出对象的内容信息
export default store;
//导入vuex对象
const app = createApp(App);
//引入vuex的操作信息
import store from "./store/index";
app.use(store);
{{$store.state.num}}
cnpm i vue-router@4 --save
src中创建一个文件夹router,router中新建一个index.js
index.js中导入创建路由对象的api createRouter,抛出对象
main.js中导入路由对象,挂载在app中去
import {createRouter, createWebHistory} from 'vue-router'
const routes = [{name: 'home',path: '/',component: () => import('../views/Home.vue')},{name: 'login',path: '/log',component: () => import('../views/Login.vue')}
];
const router = createRouter({history: createWebHistory(), routes
})export default router
import router from "./router/index";
app.use(router);
主页面Home
useRoute
个人中心
cnpm i axios --save
import axios from "axios";const app = createApp(App);app.config.globalProperties.$axios = axios;app.use(store).use(router).mount('#app')
在src中创建一个pubilc文件夹,然后创建一个index.js文件,文件中配置
//导入axios
import axios from "axios";//创建对象相关的信息
const Server = axios.create({baseURL:"",timeout:5000,
})//配置前置拦截器或者后置拦截器
Server.interceptors.request.use((confirm)=>{return config;
},error=>Promise.reject(error));//相应拦截器,数据返回,到达客户端之前触发。
Server.interceptors.response.use((response)=>{return response;
},error=>Promise.reject(error))export default Server;
非setup语法糖中,自定义指令的作用跟vue2中的作用差不多,然后语法糖中的话,可以定义一个v开头的函数对象,当成自定义指令的作用。
分为全局自定义指令局部自定自定义
bind inserted() update() componentUpdated() unbind()
自定义指令生命周期函数变化
created - 新增!在元素的 attribute 或事件监听器被应用之前调用。
bind → beforeMount
inserted → mounted
beforeUpdate:新增!在元素本身被更新之前调用,与组件的生命周期钩子十分相似。
update → 移除!该钩子与
updated
有太多相似之处,因此它是多余的。请改用updated
。componentUpdated → updated
beforeUnmount:新增!与组件的生命周期钩子类似,它将在元素被卸载之前调用。
unbind -> unmounted
el ,当前元素, binding 传递的数据
app.directive('focus',{mounted(el,binding){console.log(el,binding);el.focus()el.value=binding.value}
})
在局部自定义指令中给他一个拖拽事件
我们经常会有封装组件的需求,组件需要的往往不只有数据,一般我们通过组件通信传递的都是我们的基本数据类型或者是引用数据类型,如果我们想要传递一些标签属性,那么我们就要使用插槽来进行实现
具名插槽就是给slot标签添加name=""属性,使用是在template标签中用#name绑定使用
作用域插槽就是使用插槽传递数据,传递的数据直接绑在slot身上。使用是在template标签上#name="scope",传递的值就在scope里面
#号是v-slot指令的缩写
上一篇:维格云数据回收站入门教程
下一篇:高企申报中的常见核心问题答疑