第十五届蓝桥杯(Web 应用开发)模拟赛 3 期-大学组(被题目描述坑惨了)

目录

1.创意广告牌

2.原子化css

3.神秘咒语

4.朋友圈

5.美食蛋白揭秘

6.营业状态变更

7.小说阅读器

8.冰岛人

9.这是一个”浏览器“

10.趣味加密解密

总结


1.创意广告牌

这个题目不多说了,只要知道这些css应该都能写出来,不会的平时多查查文档就记住了。

代码:

.billboard {
  position: relative;
  background-color: #8e6534;
  color: #fff;
  padding: 20px;
  box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.3);
  background-size: cover;
  /* TODO:待补充代码  设置圆角 10px,背景图片为woodiness.jpg  */
  border-radius: 10px;
  background: url('../images/woodiness.jpg');
}

.top-sign {
  position: relative;
  width: 200px;
  height: 100px;
  background-color: #a87f4a;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  /* TODO:待补充代码   上面两个角是圆角 15px,下面两个角是直角  元素 x 轴倾斜 20度*/
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  transform: skewX(-20deg);
}

2.原子化css

这个题目主要需要知道的是css的属性选择器,可以查文档看看就知道了,不会的话其实看看其他的css应该也能联想到哈。

代码:

/* TODO: 实现原子化 flex */
div[flex="~ col"] {
  display: flex;
  flex-direction: column;
}

3.神秘咒语

这个考的也就是请求头携带参数,还不会的得抓紧学一下XML,fetch,axios了,这个从蓝桥杯模拟题的趋势来看,考的很频繁,甚至后面的题目发个请求就有3,5分。

代码:

const key1Button = document.getElementById('key1') // 钥匙 1
const key2Button = document.getElementById('key2') // 钥匙 2
const spell1 = document.getElementById('spell1') // 咒语 1
const spell2 = document.getElementById('spell2') //咒语 2

// TODO:新增或者修改以下代码

key1Button.addEventListener('click', async () => {
  // 从后台请求钥匙1的咒语部分
  key1Button.disabled = true
  try {
    let { data } = await axios.get('/spellone', {
      headers: {
        Authorization: 'Bearer 2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7' // 添加 Authorization 字段携带 token
      }
    })
    console.log(data)
    spell1.innerHTML = data
    tryOpenTreasureBox()
  } catch (error) {
    console.error('请求钥匙1咒语失败:', error)
  }
})

key2Button.addEventListener('click', async () => {
  // 从后台请求钥匙2的咒语部分
  key2Button.disabled = true
  try {
    let { data } = await axios.get('/spelltwo', {
      headers: {
        Authorization: 'Bearer 2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7' // 添加 Authorization 字段携带 token
      }
    })
    spell2.innerHTML = data
    tryOpenTreasureBox()
  } catch (error) {
    console.error('请求钥匙2咒语失败:', error)
  }
})

function tryOpenTreasureBox() {
  if (spell1.innerHTML == '星辰闪耀' && spell2.innerHTML == '众星归位') {
    const box = document.getElementById('treasureBox')
    const suceessmessage = document.getElementById('suceess-message')
    box.classList.add('opened')
    suceessmessage.style.display = 'block'
  }
}

4.朋友圈

1.防抖函数的实现

其实这个还算挺简单的,就是一个非常常规的防抖,会的自然肯定是会的,不会的可以花几分钟时间看看视频学一下,很快的。

代码:

function debounce(fn, delay) {
  let timer = null
  return function () {
    const context = this
    const args = arguments
    clearTimeout(timer)
    timer = setTimeout(function () {
      fn.apply(context, args)
    }, delay)
  }
}

2.将内容存储到localStorage中

这个按照要求做就好了,需要做哪些提示,加哪些属性都有说明。

document.getElementById('text').addEventListener(
  'input',
  debounce(function () {
    // 提示正在保存中
    document.getElementById('prompt').textContent = '正在保存中...'

    // 设置缓存
    const text = document.getElementById('text').value
    if (text.length <= 0) {
      document.getElementById('post').setAttribute('disabled', 'disabled')
    } else {
      document.getElementById('post').removeAttribute('disabled')
    }
    localStorage.setItem('savedText', text)

    // 过一段时间后提示保存完成
    setTimeout(function () {
      document.getElementById('prompt').textContent = '内容已保存'
    }, 750)
  }, 200)
)

3.这个就是对页面的一些动态展示了,需要理清页面渲染的流程是怎么样的,什么时候显示什么,什么情况下该显示什么,经过一些判断后添加必要的属性,类名等就行。

document.getElementById('post').addEventListener('click', function () {
  const content = document.getElementById('text').value
  const element = createContent(content)
  document.querySelector('.contents').appendChild(element)
  document.getElementById('prompt').textContent = ''

  // TODO: 请在此补充用户点击“发表”按钮时清空文本框和缓存的代码
  document.getElementById('text').value = ''
  localStorage.removeItem('savedText')
  // 同时需要将按钮的 disabled 属性设置回来
  document.getElementById('post').setAttribute('disabled', 'disabled')
})

页面初次加载的缓存

document.addEventListener('DOMContentLoaded', function () {
  // 页面加载时检查 localStorage 中是否有缓存文本数据
  const savedText = localStorage.getItem('savedText')
  if (savedText) {
    document.getElementById('text').value = savedText
    // 页面加载时检查输入框内容,设置按钮状态
    if (savedText.length > 0) {
      document.getElementById('post').removeAttribute('disabled')
    } else {
      document.getElementById('post').setAttribute('disabled', 'disabled')
    }
  } else {
    // 如果没有缓存文本数据,则将按钮设置为禁用状态
    document.getElementById('post').setAttribute('disabled', 'disabled')
  }
})

5.美食蛋白揭秘

1.发请求拿到需要的数据

这里的小坑就是拿到的数据渲染出来是不对的,要去除掉多余的数据

 async function fetchData() {
                    // TODO:待补充代码 
         let data = await fetch(MockURL).then(res => res.json())
             data.unshift({
                        name: '表头',
                        icon: 'none'
                    })
             echartsInit(data)
                    //去除第一个元素
             dataList.value = data.slice(1)
                }

onMounted(() => {
    fetchData();
});
return {
  echartsInit,
  fetchData,
  dataList
};

2.渲染页面

<!-- TODO:待补充代码,渲染获取的数据 -->
<div class="protein-item" v-for="data in dataList" :key="data.name">
         {{data.name}}
         {{data.value}}
</div>

6.营业状态变更

这个题目要实现切换状态,通过观察题目可以看到,需要返回的是一个Boolean值,这个是来确定页面该如何渲染的,第二个需要返回的是一个函数,用来切换状态的。

首先我们要想要的是,返回的值肯定需要是一个ref(),响应式的值,因为我们知道啊,在页面不刷新的情况下,ref(),响应式数据发生变化,页面也会发生变化的,那么想到这个就好办了。

function useToggle(state) {
            // TODO:待补充代码
            const toggledState = ref(state)

            function toggle() {
                toggledState.value = !toggledState.value
            }
            return [toggledState, toggle]
        
        }

7.小说阅读器

这个题目真的是把我坑惨了,坑的我想哭。

 但是我的解法可能有点粗糙哈,大佬看到了见谅。

刚开始看到这个题目的数据,在解析数据过程中还好,我用的比较笨拙的办法一步步的解析出来了,提交后也能运行,json文件中的数据也有了,可是正当我提交的时候却出错了。

这是题目描述的格式:

这是我第一次运行出来的格式:

感觉没有一点问题了,不过还是不行,就在我绞尽脑汁没想到办法,重新读了一遍题目,看到了这句话:

我就修改代码将写入格式改成这种了: 空格都已经去掉了,就在我满心欢喜的提交代码时,还是出错不给过,我真的想不通到底哪里出了问题。

最后在我看了一遍txt文件后,我再想是不是标题的问题,

但是看题目描述的结果又是这样的,我抱着试试的感觉修改提交后,终于通过了🎉🎉🎉

真的我要(;´༎ຶД༎ຶ`) ,太坑我了

代码:

const fs = require('fs')

let readFilePath = './run/book.txt'
let writeFilePath = './run/book.json'
let options = 'UTF-8'

//读取txt小说文件,并按对应数据格式返回。
const readFile = (file) => {
  try {
    let result = null
    let arr = {
      name: '',
      data: []
    }

    let res = fs.readFileSync(file, { encoding: options })
    res = res.split('------------\n\n')
    for (let i = 0; i < res.length; i++) {
      const lines = res[i]
        .trim()
        .split('\r\n')
        .filter((item) => {
          return item !== '' && item !== '------------' && item !== '    '
        })
      arr.name = lines[0].slice(0, 8)
      lines.splice(0, 1)
      let temp1 = []
      let temp2 = []
      for (let i = 0; i < lines.length; i++) {
        if (lines[i].slice(0, 3) === '---') {
          if (temp2.length > 0) {
            temp2.forEach((item) => {
              arr.data.push(item)
            })
          }
          temp1.push({
            isRoll: true,
            title: lines[i]
              .split('---'[1])
              .filter((item) => item !== '')
              .join('')
          })
          arr.data.push(temp1[0])
          temp1 = []
          temp2 = []
        } else if (lines[i].slice(0, 1) === '第') {
          temp2.push({ title: lines[i], content: [] })
        } else {
          temp2[temp2.length - 1].content.push(lines[i].trim())
        }
      }
      if (temp2.length > 0) {
        temp2.forEach((item) => {
          arr.data.push(item)
        })
      }
    }

    result = arr
    return JSON.stringify(result)
  } catch (err) {
    return null
  }
}

//写入json文件中
const writeFile = (file, data) => {
  try {
    fs.writeFileSync(file, data, { encoding: options })
  } catch (err) {
    console.log(err)
  }
}

// 执行读取文件
let data = readFile(readFilePath)
// console.log(data)
if (data != null) writeFile(writeFilePath, data)
module.exports = {
  writeFile,
  readFile
}

component组件

next(value) {
      // TODO:待补充代码
      this.activeChapter += value

      if (this.activeChapter <= 0) {
        this.activeChapter = 1
        return
      }

      if (this.activeChapter >= this.chapters.length - 1) {
        this.activeChapter = this.chapters.length - 1
        return
      }

      //跳过卷
      if (this.activeChapter % 11 === 0 && value == 1) {
        this.activeChapter += 1
      }

      if (this.activeChapter % 11 === 0 && value == -1) {
        this.activeChapter -= 1
      }
    },
  },
  //通过axios发起请求json数据,并渲染界面。
  created() {
    // TODO:待补充代码
    axios.get('../run/book.json').then((res) => {
      this.bookName = res.data.name
      this.chapters = res.data.data
    })
  },

8.冰岛人

1.首先的话,我是打算先进行基本的判断,是否是不存在的人,是否是同性,然后直接输出结果

2.找出每个人的祖先数组,然后再进行判断,查看是否满足题目要求,然后返回对应的结果。

代码:

/**
 * @description 通过输入的两个人的姓名返回相应的字符串
 * @param {array} data 当地的人口信息
 * @param {string} name1 要查询的两人名字之一
 * @param {string} name2 要查询的两人名字之一
 * @return {string} 根据被查询两人的名字返回对应的字符串
 * */

function marry(data, name1, name2) {
  function getAncestors(person, data) {
    let ancestors = []
    //找出person的父亲或者母亲
    while (1) {
      data.forEach((item) => {
        if (item.givenName === /(\w+)(sson|sdottir)$/gi.exec(person.familyName)[1]) {
          ancestors.push(item)
        }
      })
      //判断是不是最后一个人了,查询ancestors的最后一个元素的familyName的后缀既不是sson也不是sdottir
      if (!ancestors[ancestors.length - 1].familyName.endsWith('sson') && !ancestors[ancestors.length - 1].familyName.endsWith('sdottir')) {
        break
      }
      //将personIndex的数据改成最新的数据
      person = ancestors[ancestors.length - 1]
    }
    if (ancestors.length >= 4) {
      ancestors.pop()
    }
    return ancestors
  }

  // 获取个人信息
  let person1 = data.find((person) => person.givenName === name1.split(' ')[0])
  let person2 = data.find((person) => person.givenName === name2.split(' ')[0])

  // 如果其中一个人不在名单内,则返回 NA
  if (!person1 || !person2) {
    return 'NA'
  }

  let sex1 = ''
  let sex2 = ''
  // 获取性别
  if (person1.familyName.endsWith('sson')) {
    sex1 = 'male'
  } else if (person1.familyName.endsWith('sdottir')) {
    sex1 = 'female'
  }

  if (person2.familyName.endsWith('sson')) {
    sex2 = 'male'
  } else if (person2.familyName.endsWith('sdottir')) {
    sex2 = 'female'
  }

  // 如果两个人为同性,则返回 Whatever
  if (sex1 === sex2) {
    return 'Whatever'
  }

  // 获取两个人的祖先数组(循环)
  let ancestors1 = getAncestors(person1, data)
  let ancestors2 = getAncestors(person2, data)

  console.log(ancestors1, ancestors2)
  // 判断是否有公共祖先
  let hasCommonAncestor = false
  for (let ancestor1 of ancestors1) {
    for (let ancestor2 of ancestors2) {
      if (ancestor1 === ancestor2) {
        hasCommonAncestor = true
        break
      }
    }
  }

  // 如果有公共祖先,则返回 No;否则返回 Yes
  if (hasCommonAncestor) {
    return 'No'
  } else {
    return 'Yes'
  }
}

module.exports = marry

9.这是一个”浏览器“

这个题目,第四问暂时我真没想通哪里出问题了,等解决了再更新。

代码:

'use strict'
class Tab {
  // 构造方法
  constructor(id) {
    // 获取元素
    this.main = document.querySelector(id)
    this.add = this.main.querySelector('.tabadd')
    this.ul = this.main.querySelector('.fisrstnav ul')
    this.fsection = this.main.querySelector('.tabscon')
    this.init()
  }
  // 初始化
  init() {
    this.updateNode()
    // init初始化操作让相关元素绑定事件
    this.add.onclick = this.addTab.bind(this)
    for (var i = 0; i < this.lis.length; i++) {
      this.lis[i].index = i
      this.lis[i].onclick = this.toggleTab.bind(this.lis[i], this)
      this.remove[i].onclick = this.removeTab.bind(this.remove[i], this)
      this.spans[i].ondblclick = this.editTab
      this.sections[i].ondblclick = this.editTab
    }
  }
  // 更新所有的li和section
  updateNode() {
    this.lis = this.main.querySelectorAll('li')
    this.remove = this.main.querySelectorAll('.icon-guanbi')
    this.sections = this.main.querySelectorAll('section')
    this.spans = this.main.querySelectorAll('.content')
  }
  // 1.切换功能
  toggleTab(tab) {
    // 调用 Tab 类的 clearClass 方法,清空所有标签页及其内容页的类名
    tab.clearClass()
    // 给点击的标签页和对应的内容页添加选中状态的类名
    this.classList.add('liactive')

    // 获取点击标签页的索引
    const activeIndex = Array.from(tab.lis).indexOf(this)

    // 切换内容页的选中状态类名
    for (let i = 0; i < tab.sections.length; i++) {
      if (i === activeIndex) {
        tab.sections[i].classList.add('conactive')
      } else {
        tab.sections[i].classList.remove('conactive')
      }
    }
  }

  // 2.清空所有标签页及其内容页类名
  clearClass() {
    for (var i = 0; i < this.lis.length; i++) {
      this.lis[i].className = ''
      this.sections[i].className = ''
    }
  }
  // 3.添加标签页
  addTab() {
    this.clearClass() // 清空所有标签页及其内容页的类名

    // 创建新的标签页和内容页
    const newTabIndex = this.lis.length
    const newTabContent = `标签页${newTabIndex + 1}`
    const newSectionContent = `标签页${newTabIndex + 1}的内容`

    // 创建新的标签页
    const newLi = document.createElement('li')
    newLi.innerHTML = `
    <span class="content">${newTabContent}</span>
    <span class="iconfont icon-guanbi">
      <span class="glyphicon glyphicon-remove"></span>
    </span>
  `
    this.ul.appendChild(newLi)

    // 创建新的内容页
    const newSection = document.createElement('section')
    newSection.innerText = newSectionContent
    this.fsection.appendChild(newSection)

    // 更新节点
    this.updateNode()

    // 给新标签页和内容页添加选中状态的类名
    this.lis[newTabIndex].classList.add('liactive')
    this.sections[newTabIndex].classList.add('conactive')

    // 重新绑定事件处理程序
    this.lis[newTabIndex].onclick = this.toggleTab.bind(this.lis[newTabIndex], this)
    this.remove[newTabIndex].onclick = this.removeTab.bind(this.remove[newTabIndex], this)
  }

  //删除节点
  removeTab(tab) {
    // 找到点击删除按钮对应的标签页及其内容页的索引
    const currentIndex = Array.from(tab.remove).indexOf(this)
    const isActive = tab.lis[currentIndex].classList.contains('liactive')

    // 删除标签页和内容页
    tab.ul.removeChild(tab.lis[currentIndex])
    tab.fsection.removeChild(tab.sections[currentIndex])

    // 更新节点
    tab.updateNode()

    // 若删除的标签页是当前选中的标签页
    if (isActive) {
      // 若删除的是最后一个标签页
      if (currentIndex === tab.lis.length) {
        // 则选中上一个标签页
        tab.toggleTab.call(tab.lis[currentIndex - 1], tab)
      } else {
        // 否则选中下一个标签页
        tab.toggleTab.call(tab.lis[currentIndex], tab)
      }
    }
  }

  // 5.修改功能
  editTab() {
    var str = this.innerHTML
    window.getSelection ? window.getSelection().removeAllRanges() : document.Selection.empty()
    this.innerHTML = '<input type="text" />'
    var input = this.children[0]
    input.value = str
    input.select() //让文本框里的文字处于选定状态

    // 输入框失焦事件
    input.onblur = function () {
      this.parentNode.innerHTML = this.value
    }
  }
}
var tab = new Tab('#tab')

10.趣味加密解密

能力有限,真写不出来了 😭😭😭😭😭😭😭😭😭😭

总结

这次的模拟题是真的狠,后面的四道题难度简直是咔咔涨 不过真到比赛了,估计也没时间写后面的题目。😢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/451979.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker部署ChatGLM3、One API、FastGPT

创建并运行chatglm3容器 docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1 创建并运行one-api容器 (其中挂载路径 D:\one-api 可以选择你自己喜欢的目录) docker run --name oneapi -d -p 3000:3000 -e TZAsia…

k8s基本使用(namespace,pod增删查)-持续更新中

目录 1. 查看Namespace 2. 创建Namespace 2.1 使用纯命令行创建 2.2 编写yaml文件创建 3. 删除Namespace 3.1 使用纯命令行删除 3.2 使用yaml文件删除 二、Pod 1. 查看pod 1.1 查看默认空间的pod 1.2 查看指定空间的pod 1.3 查看全部pod 1.4 查看pod更多信息 1…

HUAWEI 华为交换机 配置 MAC 地址漂移检测示例

组网需求 如 图 2-17 所示&#xff0c;网络中两台 LSW 间网线误接形成了网络环路&#xff0c;引起 MAC 地址发生漂 移、MAC 地址表震荡。 为了能够及时检测网络中出现的环路&#xff0c;可以在 Switch 上配置 MAC 地址漂移检测功能&#xff0c; 通过检测是否发生MAC 地址漂移…

Python in Visual Studio Code 2024年3月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 2024 年 3 月发布适用于 Visual Studio Code 的 Python 和 Jupyter 扩展&#xff01; 此版本包括以下公告&#xff1a; 新的“Add Imports”代码操作设置调试 Django 或 Flask 应用时自动启动浏览器Python REPL 的 Shell 集成对本…

Python学习:基本数据类型

Python3 命令行参数 Python 提供了 getopt 模块来获取命令行参数。 %> python test.py arg1 arg2 arg3Python 中也可以所用 sys 的 sys.argv 来获取命令行参数&#xff1a; sys.argv 是命令行参数列表。 len(sys.argv) 计算命令行参数个数。 sys.argv[0] 表示脚本名。tes…

docker ENTRYPOINT [“sh“,“-c“,“java“,“-jar“,“Hello.jar“] 启动失败问题分析

因为没系统的学过linux语法&#xff0c;所以才会产生如下疑问。大佬请跳过。 问题&#xff1a;当在dockerfile里面配置 ENTRYPOINT ["sh","-c","java","-jar","Hello.jar"] &#xff0c;启动对应容器时会无法正常运行&…

剑指offer经典题目整理(四)

一、树的子结构 1.链接 树的子结构_牛客题霸_牛客网 (nowcoder.com) 2.描述 给两颗二叉树A B&#xff0c;判断B是不是A的子结构 3.思路 将问题拆解开来&#xff0c;首先是找到a树中子结构的位置&#xff0c;然后是判断是否相同&#xff0c;也就是说&#xff0c;我们需要去…

【小白学机器学习8】统计里的自由度

目录 1 自由度 /degree of freedom / df 1.1 物理学的自由度&#xff08;摘自网上 ^&#xff09; 1.2 数学里的自由度 1.2.2 统计里的自由度 1.2.3 需要补充线性代数的&#xff0c;用线性代数来理解自由度 1.3 统计学里自由度的定义 1.4 自由度的公式 1.5 线性回归公式…

stm32使用时钟生成PWM时调用__HAL_TIM_SetAutoreload导致PWM消失处理

stm32使用时钟生成PWM时调用__HAL_TIM_SetAutoreload导致PWM消失处理 这一个是配置的时候没有使用影子寄存器导致的, 如果加载的Autoreload的值比原来的这一个值小, 这是会出现一个问题, 如果计数器里面的值记为Count, 如果改变的时候New_Autoreload < Count < Old_Auto…

结构体的增删查改

结构体&#xff0c;是为了解决生活中的一些不方便利用c语言自带数据类型来表示的问题。例如表示一个学生&#xff0c;那么学生这个个体假如用c语言自带数据类型怎么表示呢。可以使用名字&#xff0c;也就是字符数组&#xff1b;也可以使用学号&#xff0c;也就是int类型。但是这…

Hadoop学习2:完全分布集群搭建

文章目录 Fully-Distributed Operation&#xff08;完全分布模式&#xff09; 重点机器环境同步集群规划配置文件修改以及同步步骤0&#xff1a;下面其他步骤涉及修改配置以这里为准&#xff08;要不然部署使用过程会有很多问题&#xff09;通用配置&#xff08;三台节点机器&a…

工具-百度云盘服务-身份认证

目标 通过百度网盘API的方式去获取网盘中的文件&#xff0c;要实现这的第一步就是需要获取网盘的权限。资料(参考) 如果期望应用访问用户的网盘文件&#xff0c;则需要经过用户同意&#xff0c;这个流程被称为“授权”。百度网盘开放平台基于 OAuth2.0 接入授权。OAuth2.0 是…

配置中心概述

目录 一、配置中心的定义 二、配置中心的工作 三、配置中心的作用 四、SpringBoot中的配置文件 一、配置中心的定义 配置中心就是用来管理项目当中所有配置的系统&#xff0c;也是微服务系统当中不可或缺的一部分。 nacos是一个更易于构建云原生应用的动态服务发现、配置管理…

服务器被大流量攻击怎么办?如何防御攻击?

随着网络的发展&#xff0c;我们所遇到的安全挑战也越来越多。尤其是近年来&#xff0c;网络攻击频发&#xff0c;许多互联网企业深受其扰。为了不影响自身业务的稳定运行&#xff0c;许多企业都在想方设法的寻求解决方案&#xff0c;防止服务器被攻击而影响业务发展。下面我们…

跨境电商选品实战——Ownips静态ip代理+Python爬虫轻松搞定Lazada电商选品

文章目录 一、引言二、Lazada电商平台爬虫实战2.1、分析Lazada电商平台的商品列表接口2.2、定位商品列表计算逻辑2.3、封装IP代理2.4、运行爬虫 三、数据处理及选品分析四、Ownips——企业级全球静态IP代理 一、引言 互联网与外贸的结合&#xff0c;催生了蓬勃兴起的跨境电子商…

el-Switch 开关二次确认

前言 最近在做毕设&#xff0c;有个需求是点击按钮控制用户的状态是否禁用&#xff0c;就看到element有个switch组件可以改造一下&#xff0c;就上网看了一下&#xff0c;结果为了这个效果忙活了很久。。。所以说记录一下&#xff0c;让大家少踩坑。 前置条件 先看完我的需求再…

spring-boot操作elasticsearch

一、环境准备 springboot与elasticsearch的更新都非常快&#xff0c;为了避免兼容性问题&#xff0c;要注意下选择的版本问题。具体的可参考官网 --> springboot与elasticsearch版本兼容性 1.1导入依赖 <dependencies><dependency><groupId>org.spring…

挖掘内容资讯App流量价值,Xinstall传参安装技术引领行业变革

在移动互联网时代&#xff0c;内容资讯App已经成为人们获取信息的重要途径。然而&#xff0c;随着用户量的不断增长和业务的不断拓展&#xff0c;如何有效地挖掘流量价值&#xff0c;成为了摆在众多内容资讯App面前的一大难题。而传参安装技术的出现&#xff0c;为这一难题的解…

Web——HTML

一.HTML概述 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 二.…

2024 遗传编程实战(一)基因实战

2024 遗传编程实战&#xff08;一&#xff09;基因实战 文章目录 2024 遗传编程实战&#xff08;一&#xff09;基因实战一、遗传编程实战介绍1、遗传编程简介2、遗传编程和进化论的关系3、遗传编程过程解释 二、基于遗传编程的例子1、实战题目介绍2、遗传算法的伪代码3、遗传实…