项目面试总结

目录

1. HTML5中template标签

2. vue中template

3. 浏览器页面切换时,刷新页面。

4. vuex做角色缓存

5. 只可以输入数字的input 


1. HTML5中template标签

        html中template标签中内容在页面中是不显示的。但是在控制台中可以看到dom结构。就相当于display:none。

  2. vue中template

        它是可以显示template标签中的内容,但是查看后台的dom结构不存在template标签。如果template标签不放在vue实例绑定的元素内部默认里面的内容不能显示在页面上,但是查看后台dom结构存在template标签。

        注意:vue中template标签不支持v-show指令,支持v-if,v-else,v-for等指令

 3. 浏览器页面切换时,刷新页面。

           在页面初始化的时候,使用document.hidden监听浏览器是否切换。监听visibilitychange事件,当页面切换时,在判断浏览器中页面是否隐藏或显示。

注意:如果不监听visibilitychange事件,直接判断hidden==false,则会导致隐藏页面一直刷新。

function browser() {
  if (document.hidden !== undefined) {
    document.addEventListener('visibilitychange', () => {
      if (document.hidden == false) {
        setTimeout(() => {
          window.location.reload()
        }, 0)
      }
    })
  }
}

4. vuex做角色缓存

        场景:有一个需求要求在同一台电脑,多个用户登录此系统,刷新角色人员不变。

这种情况如果只是用vuex,是不能实现的。产生的原因:每次最新的用户登录,都会存储到vuex的state中,所以同时登录的话,刷新浏览器以后就会出现,用户发生了变化,变成最近一次登录的人员。

解决方法:监听浏览器的刷新事件 beforeunload或onbeforeunload两种。

(1)window.οnbefοreunlοad=function(){}

(2) window.addEventListener('beforeunload', () => {})

当浏览器刷新的时候就将store的状态进行存储。使用的是sessionStorage,loaclStorage是存储方式。



 window.addEventListener('beforeunload', () => {

      sessionStorage.setItem('__userInfo', JSON.stringify(this.$store.state.user))

    })

    if (sessionStorage.getItem('__userInfo')) {

      this.$store.state.user = JSON.parse(sessionStorage.getItem('__userInfo'))

      sessionStorage.removeItem('__userInfo')

    }

让我头大的是刚开始我想的是,在登陆成功的时候将用户信息存到本地,然后就发现了一个东西,虽然自己天天背面试题,但是实际我是不知道的。

localStorage和sessionStorage的区别,大家都应该知道。

说点应用场景:localStorage特点是永久存储在浏览器,只要用户不手动删除,将会一直存在。

sessionStorage是会话级别的存在,页面关闭则消失。

最重要的是:在浏览器打开多个页面,在一个页面存储localStorage,会发现所有页面都会显示存储的信息。而sessionStorage则对每个页面显示不同的信息,同时页面关闭信息消失。

5. 只可以输入数字的input 

<input type="number" onkeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))"/>

css去除type=“number”的箭头。

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于准备 Java 商城项目面试,以下是一些建议: 1. 了解核心概念:确保你对 Java 编程语言和面向对象编程(OOP)的核心概念有扎实的理解,包括类、对象、继承、封装、多态等。熟悉 Java 的语法和常用的类库也是必须的。 2. 掌握数据库知识:商城项目通常需要与数据库进行交互,所以你需要熟悉 SQL 语言和至少一种关系型数据库(如 MySQL、Oracle)。了解数据库的设计原理、表关联、索引等概念也是很有帮助的。 3. 理解前后端交互:商城项目通常是一个有前后端交互的系统,你需要了解 HTTP 协议、RESTful API 的设计原则,以及如何使用 Java 后端框架(如 Spring MVC 或 Spring Boot)来处理请求和响应。 4. 学习常用框架和技术:在 Java 商城项目中,常用的框架和技术包括 Spring、Spring Boot、MyBatis(或 Hibernate)、Spring Security、Thymeleaf(或其他模板引擎)、Redis(或其他缓存技术)等。掌握这些框架和技术会让你在开发过程中更加高效。 5. 理解安全性:商城项目通常涉及用户信息和交易数据的安全性,你需要了解如何处理用户认证和授权、密码加密、数据传输的安全性等方面的知识。 6. 具备项目经验或实践:如果你有商城项目的实际开发经验,那将是一个巨大的优势。如果没有,可以通过个人项目或参与开源项目来积累实践经验,并在面试展示你的项目成果。 7. 准备常见面试问题:除了技术知识外,还需要准备常见的面试问题,如项目经验、解决问题的能力、团队合作等方面的问题。准备好自我介绍和简历上的项目经历,并思考如何以实际案例回答面试官的问题。 最重要的是,理解商城项目的需求和功能,并能够从综合性的角度思考问题。努力提升自己的技术水平,并在准备过程中多进行实践和总结,相信你一定能够在面试中脱颖而出!祝你好运!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成序猿@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值