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

网站设计公司飞沐vs做的网站项目可以改名字吗

网站设计公司飞沐,vs做的网站项目可以改名字吗,免费的建站软件推荐下载,芜湖效能建设网站文章目录一、登录基础1. 登录组件2. 页面引用组件3. 明确登录的实现思路4. 封装 action 调用登录接口5. 保存用户登录状态6. 成已登录的用户视图6. 现退出登录功能一、登录基础 1. 登录组件 对于 登录 功能来说提供了两个登录的入口。 那么大家想一下#xff0c;现在我们已… 文章目录一、登录基础1. 登录组件2. 页面引用组件3. 明确登录的实现思路4. 封装 action 调用登录接口5. 保存用户登录状态6. 成已登录的用户视图6. 现退出登录功能一、登录基础 1. 登录组件 对于 登录 功能来说提供了两个登录的入口。 那么大家想一下现在我们已经在 我的 这个 tab页 中实现了 登录的 UI难道我还需要在另外一个页面中再去实现一遍吗 这个肯定是不需要的对不对。所以我们希望可以复用登录的 UI而复用的方式则可以把 登录的 UI 封装称为一个 组件 创建登录组件 my-login 登录页面基本样式 templateview classmy-container!-- 用户未登录 --blockimage classavatar avatar-img src/static/images/default-avatar.png modescaleToFill /view classlogin-desc登录后可同步数据/viewbutton classlogin-btn typeprimary clickgetUserInfo微信用户一键登录/button/block/view /templatescript export default {name: my-login,data() {return {};} }; /scriptstyle langscss scoped .my-container {display: flex;flex-direction: column;align-items: center;padding-top: 25%;.avatar-img {width: 78px;height: 78px;}.login-desc {color: $uni-text-color-grey;font-size: $uni-font-size-base;margin-top: $uni-spacing-col-big;}.login-btn {margin-top: $uni-spacing-col-big;width: 85%;} } /style 2. 页面引用组件 me.vue templatemy-login / /templatescript export default {name: login }; /script3. 明确登录的实现思路 微信小程序 想要实现登录功能那么我们需要调用登录接口来进行实现而登录接口所需要的参数我们可以直接通过 getUserProfile 方法进行获取。调用登录接口成功服务端会返回用户的 token这个 token 为当前的用户身份令牌。拥有 token 则表示用户已经登录了。而此处的 token我们需要在多个组件中进行使用所以 token 需要被保存到 全局状态管理工具 - vuex 中同时需要保存的还有通过 getUserProfile 获取到的用户基本信息。而当前的用户登录状态我们希望可以一直保存PS不需要每次都进行登录。所以在登录完成后我们需要把 token userinfo 保存到 本地存储中最后为了实现 数据与组件的分离我们需要把与 与登录相关的逻辑 都封装在 vuex 中进行。 这些业务是 前端用户登录的标准逻辑大家在以后的前端登录业务处理中也可以按照此逻辑进行。 4. 封装 action 调用登录接口 首先我们需要先获取到用户的信息用作登录时的请求参数 my-login script import { mapActions } from vuex; export default {methods: {...mapActions(user, [login]),/*** 获取用户信息*/getUserInfo() {// 展示加载框uni.showLoading({title: 加载中});uni.getUserProfile({desc: 登录后可同步数据,success: async (obj) {// 调用 action 请求登录接口await this.login(obj);},fail: () {uni.showToast({title: 授权已取消,icon: error,mask: true});},complete: () {// 隐藏loadinguni.hideLoading();}});}} }; /scriptapi/user.js import request from ../utils/request;/*** 获取用户基本信息*/ export function login(data) {return request({url: /sys/login,method: POST,data,}); }/*** 微信用户授权登录携带appid和code参数调用后端接口获取Openid*/ export function loginAuth(data) {return request({url: /wx/user/ data.appid /login/,data: {code: data.code,},}); } store/user.js import { login } from api/user; export default {namespaced: true,state: () {return {};},actions: {/*** 完成登录*/async login(context, userProfile) {console.log(userProfile);// 用户数据const rawData userProfile.userInfo;// 调用登录接口const { data: res } await login({signature: userProfile.signature,iv: userProfile.iv,nickName: rawData.nickName,gender: rawData.gender,city: rawData.city,province: rawData.province,avatarUrl: rawData.avatarUrl});// TODO: 登录逻辑console.log(res);}} };store/index.js import user from ./modules/user;const store new Vuex.Store({modules: {user} });5. 保存用户登录状态 用户的登录状态需要被保存到 vuex 中同时需要进行 本地存储。 store/user.js import { login } from api/user; const STORAGE_KEY user-info; const TOKEN_KEY token; export default {namespaced: true,state: () {return {// 用户 tokentoken: uni.getStorageSync(TOKEN_KEY) || ,// 用户信息userInfo: uni.getStorageSync(STORAGE_KEY) || {}};},mutations: {/*** 保存 token 到 vuex*/setToken(state, token) {state.token token;this.commit(user/saveToken);},/*** 保存 token 到 本地存储*/saveToken(state) {uni.setStorage({key: TOKEN_KEY,data: state.token});},/*** 保存 用户信息 到 vuex*/setUserInfo(state, userInfo) {state.userInfo userInfo;this.commit(user/saveUserInfo);},/*** 保存 用户信息 到 本地存储*/saveUserInfo(state) {uni.setStorage({key: STORAGE_KEY,data: state.userInfo});}},actions: {/*** 完成登录*/async login(context, userProfile) {...// 登录逻辑this.commit(user/setToken, res.token);this.commit(user/setUserInfo, JSON.parse(userProfile.rawData));}} }; 6. 成已登录的用户视图 当 token 存在时表示用户已经登录了此时需要 展示用户登录完成的视图 my-login templateview classmy-container!-- 用户未登录 --block v-if!token.../block!-- 已登录 --block v-elseimage classavatar avatar-img :srcuserInfo.avatarUrl modescaleToFill /view classlogin-desc{{ userInfo.nickName }}/viewbutton classlogin-btn typedefault clickonLogoutClick退出登录/button/block/view /templatescript import { mapState, mapActions } from vuex; export default {name: my-login,data() {return {};},computed: {...mapState(user, [token, userInfo])}, }; /script 6. 现退出登录功能 store/user export default {...mutations: {.../*** 删除 token*/removeToken(state) {state.token ;this.commit(user/saveToken);},.../*** 删除用户信息*/removeUserInfo(state) {state.userInfo {};this.commit(user/saveUserInfo);}},actions: {.../*** 退出登录*/logout(context) {this.commit(user/removeToken);this.commit(user/removeUserInfo);}} }; my-login templateview classmy-container...!-- 已登录 --block v-else...button classlogin-btn typedefault clickonLogoutClick退出登录/button/block/view /templatescript export default {...methods: {...mapActions(user, [login, logout]),.../*** 退出登录*/onLogoutClick() {uni.showModal({title: 提示,content: 退出登录将无法同步数据哦~,success: ({ confirm, cancel }) {if (confirm) {this.logout();}}});}} }; /script
http://wiki.neutronadmin.com/news/434815/

相关文章:

  • 网站建设可信赖网站镜像怎么做
  • 网站建设的方法营销运营平台
  • 长沙零基础学快速建站新女权时代的到来wordpress
  • 个人动漫网站怎么做页面竞价托管一般多少钱
  • 毕业设计开题报告网站开发网站文章快速被收录
  • 北京网站开发培训中心网站访问工具
  • 网站开发公司有哪些php的网站怎么做
  • 网盘 商业网站建设案例课程 下载欧美简约风格网站设计
  • 温州建设信息港网站wordpress后台缓慢
  • 云网站 制作广州网站建设推广专家
  • 列举网免费发布信息网整站优化seo排名点击
  • 网站内的搜索怎么做的知网被罚8760万
  • 广州站停运最新消息新手自己做网站
  • 金环建设集团有限公司官方网站宜都网站建设
  • 竞价广告网站建设优化公司呼和浩特
  • 做一个网站能挣多少钱php wordpress
  • 郑州公司网站建设网站关键词不稳定
  • 网站设计自学福州免费做网站
  • 网站的搜索功能一般怎么做查询网入口
  • 岳阳做网站哪家好mvc5网站开发之美
  • 珠海网站建设方案开发南昌网站空间
  • 网站常见错误局域网网站怎么做
  • 钱建网站杭州义牛网络技术有限公司
  • 温州网站提升排名免费分类信息网站大全
  • 深圳网站公司招聘信息公司网络监控
  • 网站搜索引擎推广方案桂林临桂区建设局网站
  • dw怎么做班级网站做网站数据库有哪些
  • 南宁网站建设策划方案网站到期不续费
  • 广西壮锦网站建设策划书中企动力科技股份有限公司待遇
  • 杭州营销型网站建设工作室美团这个网站多少钱做的