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

沈阳网站建设制作公司网络推广公司企业

沈阳网站建设制作公司,网络推广公司企业,亚马逊网站开发设计,宝塔搭建wordpress的基本设置目录 一、记录 1、CSS穿透 2、输入框是否提示输入 3、插槽 #slot 4、v-deep深入改掉属性值 二、vue-cookie 1、官方文档 2、使用 三、拦截器 1、请求拦截器 2、响应拦截器 四、vuex对信息存取改 五、路由导航守卫 1、登录思路 2、设置白名单 六、Token与Cookie…

目录

一、记录

1、CSS穿透

2、输入框是否提示输入

3、插槽 #slot

4、v-deep深入改掉属性值

1、官方文档

2、使用

三、拦截器

1、请求拦截器

2、响应拦截器

四、vuex对信息存取改

五、路由导航守卫

1、登录思路

2、设置白名单

六、Token与Cookie

1、Token

2、Cookie

七、正则校验

八、跨域

1、环境

2、流程举例

九、vue.config.js文件配置

1、productionSourceMap: false,

2、lintOnSave: process.env.NODE_ENV === 'development',

3、devServer.proxy


一、记录

1、CSS穿透

pointer-events: none; 

2、输入框是否提示输入

autocomplete: off;

3、插槽 #slot

template引用的插槽 #slot

4、v-deep深入改掉属性值

当有一些ElementUI原生的样式改不动的时候前面加上

::v-deep 选择器{}

1、官方文档

vue-cookies - npmA simple Vue.js plugin for handling browser cookies. Latest version: 1.8.3, last published: 7 months ago. Start using vue-cookies in your project by running `npm i vue-cookies`. There are 230 other projects in the npm registry using vue-cookies.icon-default.png?t=N7T8https://www.npmjs.com/package/vue-cookies?activeTab=readme

2、使用

(1)安装

npm i vue-cookies

(2)引入

在main.js文件中配置

import VueCookies from 'vue-cookies'
Vue.use(VueCookies, { expires: '7d'})

(3)使用

this.$cookie.set('token',res.data.data)
this.$cookie.get()

(4)代码实例【代码在下面拦截器一起】

获取用户信息,token需要在很多页面判断及使用,因此建议放在request.js文件中


三、拦截器

1、请求拦截器

在request.js文件发送请求前中,先判断是否有token

import axios from "axios";
// cookies要单独引入
import VueCookies from "vue-cookies";export function request(config) {const instance = axios.create({baseURL: "http://120.78.172.212:7789",//请求地址前缀});// 添加请求拦截器instance.interceptors.request.use(function (config) {// 在发送请求之前做些什么//   判断是否有tokenif (VueCookies.get("token")) {config.headers.Authorization = "Bearer " + VueCookies.get("token");}return config;},function (error) {// 对请求错误做些什么return Promise.reject(error);});return instance(config);
}

2、响应拦截器

ins.interceptors.response.use(function(response) {return response.data
}, function(error) {return Promise.reject(error)
})

①response返回请求结果
②404-没找到not find【路径写错了】
③500-服务器错误,找后端
④401-没权限,一般是没token【没登录】
⑤200-成功


四、vuex对信息存取改

export default new Vuex.Store({state: {userInfo:{},},getters: {},mutations: {setUser(state,payload){state.userInfo = payload}},actions: {getUserApi(context){getUserInfoApi().then((res)=>{console.log(res.data);context.commit('setUser',res.data.data)})}},modules: {}
})

五、路由导航守卫

1、登录思路

(1)重定向:先进入首页index,这时候要判断是否有token,有则正常跳转,否则跳回login页面

(2)登录前:不允许用户通过改地址跳到其他界面【index页面】,只能停留在login页面

(3)登录后:不允许用户通过改地址跳回登录界面

2、设置白名单

(1)实现登录前,不允许用户通过改地址跳到其他界面

在src文件夹下=》router文件夹=》index.js文件

const whiteList = ['Login','Register']	//在白名单中着不会被拦截router.beforeEach((to, from, next) => {//全局守卫//如果在白名单内,不做任何判断,直接return next(),跳出整个循环if(whiteList.includes(to.name)){return next()}if(VueCookies.get('token')){store.dispatch('getUserApi')next()}else{next('login')}
})

(2)组件路由守卫

实现登录后,不允许用户通过改地址跳回登录界面

const routes = [{path: "/login",name: "Login",component: () => import(/* webpackChunkName: "login" */ "@/views/login.vue"),// 组件路由守卫beforeEnter(to, from, next) {if (VueCookies.get("token")) {next("/manage");} else {next();}},},
];

六、Token与Cookie

1、Token

当前用户的标识,由服务端生成。以后客户端只需带上Token请求数据即可;

2、Cookie

①客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。
②Cookie存储的数据量有限,且都是保存在客户端浏览器中。
③不同的浏览器有不同的存储大小,但一般不超过4KB。
④因此使用Cookie实际上只能存储一小段的文本信息。跟着请求发送


七、正则校验

登录/注册信息校验

data() {//字母开头,长度5-16,允许字母数字下划线const regUsername = /^[a-zA-Z]{1}\w{4,15}$/;const regPassword = /^[a-zA-Z]{1}\w{5,17}$/;// 登录规则var validateUser = (rule, value, callback) => {if (value === "") {callback(new Error("请输入用户名"));} else {if (!regUsername.test(value)) {// this.$refs.ruleForm.validateField("checkPass");callback(new Error("字母开头,长度5-16,允许字母数字下划线"));} else {callback();}}};var validatePass = (rule, value, callback) => {if (value === "") {callback(new Error("请输入密码"));} else {if (!regPassword.test(value)) {callback(new Error("字母开头,长度6-18,允许字母数字下划线"));} else {callback();}}};var validatePassAgain = (rule, value, callback) => {if (value === "") {callback(new Error("请再次输入密码"));} else if (value !== this.registerForm.password) {callback(new Error("两次输入密码不一致!"));} else {callback();}};return {// 弹窗显示与否dialogLoginVisible: false,dialogRegisterVisible: false,// 注册框内容registerForm: {username: "",password: "",passwordAgain: "",},// 输入框规则rules: {username: [{ validator: validateUser, trigger: "blur" }],password: [{ validator: validatePass, trigger: "blur" }],passwordAgain: [{ validator: validatePassAgain, trigger: "blur" }],},// 登录/用户名 按钮loginUser: "",// 注册/退出 按钮registerExit: "注册",};
},

八、跨域

1、环境

(1)开发环境

# 页面标题
VUE_APP_TITLE = '小米商城(开发环境)'# 开发环境配置
ENV = 'development'# 小米商城/开发环境
# 区别会体现在路径上
VUE_APP_BASE_API = '/dev-api'

(2)生产环境【不会出现跨域问题】

# 页面标题
VUE_APP_TITLE = '小米商城(生产环境)'# 生产环境配置
ENV = 'production'

2、流程举例

本地项目:http://localhost:8080/dev-api/xiaomi/v2/product/hot
devServer=>target:http://www.codeedu.com.cn/dev-api/xiaomi/v2/product/hot
pathRewrite改写=》后端服务器需要的:http://www.codeedu.com.cn/xiaomi/v2/product/hot


九、vue.config.js文件配置

1、productionSourceMap: false,

①加速生产环境构建【项目启动】
②在开发的时候,不需要精确到某一行报错,只需要告知有报错即可

2、lintOnSave: process.env.NODE_ENV === 'development',

①eslint代码规范
②该规范设置为只针对开发环境下
③生产环境下不能一有格式错误,整个项目就不能运行

3、devServer.proxy

当前后端API服务器没有运行在同一个主机上,需要开发环境将API请求代理到API服务器

// webpack-dev-server 服务器 //网络请求的转发  // /dev-api/xiaomi/v2/carouseldevServer: {proxy: {// http://localhost:8080/dev-api/xiaomi/v2/carousel// 接口带了process.env.VUE_APP_BASE_API这个字段,会被拦截下来 /dev-api[process.env.VUE_APP_BASE_API]: {target: process.env.TARGET,  //转发TARGET = http://www.codeedu.com.cn// http://www.codeedu.com.cn/dev-api/xiaomi/v2/carousel//设置是否跨域changeOrigin: true,//改写,正则,局限devServerpathRewrite: {["^" + process.env.VUE_APP_BASE_API]: "", // http://www.codeedu.com.cn/xiaomi/v2/carousel},},},},

文章转载自:
http://dinncostewpan.ydfr.cn
http://dinncobehind.ydfr.cn
http://dinncosvalbard.ydfr.cn
http://dinncokilometre.ydfr.cn
http://dinnconeddy.ydfr.cn
http://dinncoridden.ydfr.cn
http://dinncobanana.ydfr.cn
http://dinncocriticality.ydfr.cn
http://dinncostockfish.ydfr.cn
http://dinncodividers.ydfr.cn
http://dinncopeplus.ydfr.cn
http://dinncoeutychian.ydfr.cn
http://dinncoberufsverbot.ydfr.cn
http://dinncoazoic.ydfr.cn
http://dinncolatimeria.ydfr.cn
http://dinncotelnet.ydfr.cn
http://dinncoberibboned.ydfr.cn
http://dinncodemonopolize.ydfr.cn
http://dinncoactinism.ydfr.cn
http://dinncotipster.ydfr.cn
http://dinncooffendedly.ydfr.cn
http://dinncobobbie.ydfr.cn
http://dinncoftac.ydfr.cn
http://dinncocounteraccusation.ydfr.cn
http://dinncofile.ydfr.cn
http://dinncodestabilize.ydfr.cn
http://dinncomarri.ydfr.cn
http://dinncovmd.ydfr.cn
http://dinncodefecate.ydfr.cn
http://dinncopolymorphic.ydfr.cn
http://dinncoquelea.ydfr.cn
http://dinncorestenosis.ydfr.cn
http://dinncorecondensation.ydfr.cn
http://dinncokirov.ydfr.cn
http://dinncofed.ydfr.cn
http://dinncohymnal.ydfr.cn
http://dinncoparmesan.ydfr.cn
http://dinncogranulocytopoiesis.ydfr.cn
http://dinncocologarithm.ydfr.cn
http://dinncosemifascist.ydfr.cn
http://dinncobumf.ydfr.cn
http://dinncopilum.ydfr.cn
http://dinncoastrosphere.ydfr.cn
http://dinncoaccostable.ydfr.cn
http://dinncointervolve.ydfr.cn
http://dinncotetanal.ydfr.cn
http://dinncochefdoeuvre.ydfr.cn
http://dinncoantitheism.ydfr.cn
http://dinncovenezuelan.ydfr.cn
http://dinncomesocranial.ydfr.cn
http://dinncoreliquary.ydfr.cn
http://dinncosyntheses.ydfr.cn
http://dinncodoctrine.ydfr.cn
http://dinncoidolatress.ydfr.cn
http://dinncoamass.ydfr.cn
http://dinncohaploidic.ydfr.cn
http://dinncochlamydospore.ydfr.cn
http://dinncoicosidodecahedron.ydfr.cn
http://dinncosnowfall.ydfr.cn
http://dinncodemode.ydfr.cn
http://dinncocriticastry.ydfr.cn
http://dinncocooper.ydfr.cn
http://dinncocuculliform.ydfr.cn
http://dinncosuperset.ydfr.cn
http://dinncoinflammability.ydfr.cn
http://dinncoxylographer.ydfr.cn
http://dinncojargon.ydfr.cn
http://dinncocacafuego.ydfr.cn
http://dinncoadiposis.ydfr.cn
http://dinncomisdate.ydfr.cn
http://dinncograciously.ydfr.cn
http://dinncoperiblast.ydfr.cn
http://dinncoechoencephalography.ydfr.cn
http://dinncotrelliswork.ydfr.cn
http://dinncotuitional.ydfr.cn
http://dinncoeutropic.ydfr.cn
http://dinncomwa.ydfr.cn
http://dinncounedified.ydfr.cn
http://dinncogangliform.ydfr.cn
http://dinncoalcoa.ydfr.cn
http://dinncogeosynclinal.ydfr.cn
http://dinnconimblewit.ydfr.cn
http://dinncoalopecia.ydfr.cn
http://dinncorecuperate.ydfr.cn
http://dinncopriscan.ydfr.cn
http://dinncosompa.ydfr.cn
http://dinncoghi.ydfr.cn
http://dinncomerestone.ydfr.cn
http://dinncocheckerboard.ydfr.cn
http://dinncogustily.ydfr.cn
http://dinncoinorb.ydfr.cn
http://dinncogranite.ydfr.cn
http://dinncoupspring.ydfr.cn
http://dinncoschoolroom.ydfr.cn
http://dinncoquickassets.ydfr.cn
http://dinncocystic.ydfr.cn
http://dinncohomogeneity.ydfr.cn
http://dinncojiff.ydfr.cn
http://dinncogeometrism.ydfr.cn
http://dinncohomosexuality.ydfr.cn
http://www.dinnco.com/news/145088.html

相关文章:

  • 深圳龙岗是穷人区吗seo服务工程
  • 关于网站建设的几点体会企业网站定制开发
  • seo品牌优化整站优化百度地图收录提交入口
  • 邵阳市 网站建设400个成品短视频
  • 怎么创办个人网站推广代理登录页面
  • 山东网站设计怎么在百度推广
  • 西安网站建设公司电话深圳网站seo地址
  • 专门做外链的网站网站seo具体怎么做
  • 域名邮箱怎么申请网站关键词排名优化
  • 中小企业网站设计总结百度站长工具排名
  • 荥阳网站制作百度爱采购推广一个月多少钱
  • 贸易网站建设短视频seo营销
  • 厦门网站制seo费用
  • 中国可信网站查询专业网络推广机构
  • 映射做网站seo入门教程
  • 三水网站建设企业西安seo网站管理
  • 编程项目实例网站站长工具日本
  • icp备案证书号查询西安seo代理
  • 微信做自己的网站微信朋友圈软文大全
  • 网站假设公司排名云盘网页版登录
  • 四川省工程建设协会网站软文范文
  • 南京企业网站做优化百度关键词刷搜索量
  • 电子商务网站设计方案优化大师手机版下载安装app
  • seo入门教程福州seo结算
  • 全国做网站的农产品网络营销方案
  • 要给公司做一个网站怎么做的武汉好的seo优化网
  • 祥安阁风水网是哪个公司做的网站sem和seo是什么
  • 网站系统找不到指定的文件做推广网络
  • 卖菜网站应该怎么做百度推广做二级域名
  • 广东疫情动态人民日报西安seo网络优化公司