当前位置: 首页 > news >正文

为什么做网站备案的人态度差免费收录网站

为什么做网站备案的人态度差,免费收录网站,关于学校网站建设的请示,windows与wordpress为了跨组件传递JWT令牌,我们就会利用Pinia状态管理库,它允许跨组件或页面共享状态。 使用Pinia步骤: 安装pinia:cnpm install pinia 在vue应用实例中使用pinia 在src/stores/token.js中定义store 在组件中使用store 1.在main.js文…

为了跨组件传递JWT令牌,我们就会利用Pinia状态管理库,它允许跨组件或页面共享状态

使用Pinia步骤:

安装pinia:cnpm install pinia
在vue应用实例中使用pinia
在src/stores/token.js中定义store
在组件中使用store 

1.在main.js文件导入pinia:

这里因为Pinia是默认内存存储,刷新浏览器会丢失数据,我们使用pinia内的Persist插件就可以将Pinia中的数据持久化存储。

为了使用persist,我们需要安装persist:cnpm install pinia-persistedstate-plugin,然后再pinia中使用persist,并且需要再main.js导入一下。

import './assets/main.scss'import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from '@/router'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-persistedstate-plugin'const app = createApp(App);
//创建createPinia()函数实例
const pinia = createPinia();
const persist = createPersistedState();
pinia.use(persist)
app.use(pinia)
app.use(router)
app.use(ElementPlus);
app.mount('#app')

2.定义store状态:

其实无外乎就是使用defineStore()方法,在方法内部分为两个参数来写 :

第一个参数:名字,确保唯一性。
第二个参数:函数,其内部可以定义状态的所有内容,其内部先创建一个响应式数据,然后设置获取数据以及删除数据的方法,最后返回数据以及方法。

加上Persist插件就可以将Pinia中的数据持久化存储。

//定义store
import { defineStore } from "pinia";
import {ref} from 'vue'
/*第一个参数:名字,确保唯一性第二个参数:函数,其内部可以定义状态的所有内容返回值:函数
*/
export const useTokenStore = defineStore('token',()=>{//定义状态内容//1.定义响应式变量const token = ref('');//2.定义函数来修改token值const setToken = (newToken)=>{token.value = newToken;}//3.定义函数来移除token值const removeToken = ()=>{token.value = '';}return {token,setToken,removeToken}
},{persist: true  //因为Pinia是默认内存存储,刷新浏览器会丢失数据,使用Persist插件就可以将Pinia中的数据持久化存储
}
);

这样我们就可以调用定义的useTokenStore来使用pinia了。

eg:文章分类列表渲染:

我们的目的是想要通过pinia来跨组件使用token请求头内的JWT令牌,将其封装给请求头。

我们首先再Login.vue文件中把得到的token存储到pinia中:

//导入store状态
import { useTokenStore } from '@/stores/token.js';
//导入路由器
import { useRouter } from 'vue-router';
const tokenstore = useTokenStore();
const router = useRouter();
//表单数据校验
const login = async()=>{let result = await userLoginService(registerData.value);// alert(result.msg ? result.msg : '登录成功'); ElMessage.success(result.msg ? result.msg : '登录成功');//将得到的token存储到pinia中tokenstore.setToken(result.data);//通过路由跳转首页router.push('/');
}

然后再article.js中定义请求函数:

import request from '@/utils/request.js'
import { useTokenStore } from '@/stores/token.js';export const ArticleCategoryListService = ()=>{const tokenStore = useTokenStore();//在pinia中定义的响应式数据不需要加.value才能使用数据return request.get('/category',{headers:{'Authorization':tokenStore.token}});
} 

但是这样我们需要将剩下的请求函数都要传递JWT令牌,代码会很繁琐,这个时候我们就可以添加请求拦截器来使用回调函数来发送

添加请求拦截器:

在request.js文件中添加请求拦截器:

import { useTokenStore } from '@/stores/token.js';
//添加请求拦截器
instance.interceptors.request.use((config)=>{//请求前的回调const tokenStore = useTokenStore();if(tokenStore.token){//通过config调用headers获取请求头,在调用Authorization将JWT令牌存放到内部以此来添加统一的请求头config.headers.Authorization = tokenStore.token;}return config;},(err)=>{//请求错误的回调Promise.reject(err);//异步的状态转化成失败的状态}
)
export default instance;

修改article.js文件的请求函数:

import request from '@/utils/request.js'export const ArticleCategoryListService = ()=>{return request.get('/category');
} 
http://www.ds6.com.cn/news/40424.html

相关文章:

  • 查建设工程规划许可证在哪个网站台州seo排名外包
  • dw怎么做打开网站跳出提示怎样做网络推广效果好
  • 展览网站制作南京百度推广优化排名
  • 爱站网是什么平台关键词搜索排名怎么查看
  • 高端网站设计公司如何设计网站杭州云优化信息技术有限公司
  • 杭州如何设计网站首页学生个人网页制作html代码
  • 中企动力网站后台品牌推广方案策划书
  • 网站托管费用多少免费推广公司的网站
  • 怎样建设有价值的网站厦门网站推广优化哪家好
  • 百度地图实时街景怎么移动百度seo优化培训
  • 江苏建设省直报名网站培训班学员培训心得
  • 学做网站推广要多久时间万能优化大师下载
  • cms可以做多少个网站网络推广方法有几种
  • 用websocket做网站网站子域名查询
  • 成都网站建设需多少钱温州seo优化公司
  • 云一网站建设群站优化之链轮模式
  • 网站更新问题在线seo工具
  • b2c的电子商务网站有哪些近日发生的重大新闻
  • 绍兴市住房与城乡建设厅网站搜狐财经峰会
  • 锦州做网站的公司十大洗脑广告
  • 成都网站设计得多少钱杭州seo首页优化软件
  • 自己做的网站怎么发布win7网络营销策略都有哪些
  • 内网网站开发费用爱上链外链购买交易
  • 阿里云网站实名认证友情链接交换系统
  • 网站域名注册证书搜索引擎优化seo网站
  • 求哪位大神发人和动物做愛视频网站网站权重是什么意思
  • 网站开发课题研究背景营销软件哪个好
  • 百度公众号河南整站百度快照优化
  • 如何接单做网站关键词排名优化公司成都
  • 中英文微信网站建设网络推广文案怎么写