栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

前端代码简洁封装(个人向)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

前端代码简洁封装(个人向)

父传子定义

//父组件使用.syc

//子组件接收并使用计算属性
 props: {
    isShow: {
      type: Boolean,
      default: false,
    },
  },
  computed: {
    isShowReport: {
      get() {
        return this.isShow;
      },
      set(val) {
        this.$emit("update:isShow", val);
      },
    },
  },
  //可直接反向赋值

父子方法调用

//子组件使用$parent来调用
 this.$parent.init()
 //父组件使用ref
 this.$ref.(方法名)

main.js

//快速调用
import api from '@/api'
import config from '@/config';
// 注册全局api
Vue.prototype.$api = api
// 注册全局config
Vue.prototype.$config = config;

结构对象

//不易报错
const {success , data: { contents = {}, count = '' },} = res.data || {};
//或使用
data?.data?.count

响应拦截处理

  instance.interceptors.response.use(res => {
      const { data, status } = res
      if (Object.prototype.toString.call(data) === '[object Object]' && data.hasOwnProperty('success') && !data.success) {
        if (!data.message) {
          return Promise.reject(data)
        }
        if (data.code === "500") {
          Notice.error({
            title: ,
            desc: ''
          })
        }
        if (data.code === "110003"){
          // 超时状态码 重定向到login
            Vm.$router.push({
              name: "login"
            });
            return Promise.reject(data)
        }
        Notice.error({
          title: Error,
          desc: data.message
        });
        return Promise.reject(data)
      }
      return { data, status }
    }, error => {
      let errorInfo = error.response;
      switch (errorInfo && errorInfo.status) {
        case 401:
          Vm.$router.push({
            name: "login"
          })
          break
        case 403:
          Notice.error({
            title: ,
            desc: ''
          });
          break
        case 404:
          break
        case 500:
          Notice.error({
            title: ,
            desc: ''
          });
        case 502:
          Notice.error({
            title: ,
            desc: ''
          });
      }
      return Promise.reject(error)
    })
  }

注册组件

//尽量使用数据来注册
	

quickMenu: [
			{
				menuName: 'my_favorite',
				isShowMenu: true,
				jumpRoute: '/myFavorite/my_favorite',
				action: () => this.$router.push('myFavorite/my_favorite')
			},
			{
				menuName: 'submit_feedback',
				isShowMenu: true,
				action: () => this.isShow = true
			}
		]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号