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

个人网站wordpress网络运维工程师需要掌握的技能

个人网站wordpress,网络运维工程师需要掌握的技能,个人网站备案容易吗,网站建设图片怎么调1) 背景: 老项目翻新时#xff0c;发现一个下拉框数据非常多#xff0c;客户呢#xff0c;希望全部数据一起展示#xff0c;意思就是全部数据一起返回给前端用于展示。但这会造成明显的卡顿。~~明显的不合理! QAQ!~~ 于是压力给到前端#xff0c;查询资料#xff0c;各种… 1) 背景: 老项目翻新时发现一个下拉框数据非常多客户呢希望全部数据一起展示意思就是全部数据一起返回给前端用于展示。但这会造成明显的卡顿。~~明显的不合理! QAQ!~~  于是压力给到前端查询资料各种搜索最终找到2个解决方案。     1、在el-select下拉框中添加分页组件让用户点击下一页下一页     2、在el-select下拉框中数据触底加载     当然最终选择了第二个方案用户体验会更好。     由于项目中有多个地方使用到 且 可能单个页面中会用到多次为了复用选择了自定义指令的方式去实现。      2) 先来看看实现的效果 3) 思路 触底加载哪个元素滚动触底时加载 承装下拉框中所有元素的容器(.el-scrollbar__wrap)触底时触发方法做什么 触底时继续向后端发请求获取下一页的数据请求回来的数据合并给options 4) 简单的写一下.vue文件代码 接口数据是自己用node写的 后端代码在这里GitHub - stella99888/tao-express: Vue2Express javascript!-- 下拉框触底加载页面 --templatediv classm-4p第一个select/pel-select v-modelvalue v-loadmoreloadmore :teleportedfalse stylewidth:240pxel-option v-foritem in options :keyitem.value :labelitem.label :valueitem.value //el-selectp第二个select/pel-select v-modelvalue v-loadmoreloadmore :teleportedfalse stylewidth:240pxel-option v-foritem in options :keyitem.value :labelitem.label :valueitem.value //el-select/div/templatescript setup import axios from axios; import { onMounted, reactive, ref } from vueconst list ref([]) const options ref([]) const option ref([]) const value ref([]) const loading ref(false) let pageData reactive({pageIndex: 1,pageSize: 10 }) onMounted(() {getOptions() }) const getOptions () {axios.get(http://localhost:9999/getSelectOptions?pageIndex${pageData.pageIndex}pageSize${pageData.pageSize}).then(res {console.log(res.data);if (res.data.length 1) {ElMessage({message: 没有更多数据了...,type: warning,});}const newOptions res.data.map((item) {return { value: item.name, label: item.index }})options.value.push(...newOptions)}) } // 触底了继续发请求 const loadmore () {pageData.pageIndex pageData.pageIndex 1getOptions() } /script * 注意一下:  1. teleported属性为官网提供是否将下拉列表插入至 body 元素默认值为true插入到body元素中。 这是插入body中的 这是不插入body中的可以对比下 2. 我们需要将其插入body元素中吗如果是单个页面中只出现一个那影响不大如果是多个我们要选中该元素时就很不方便了。   3. 且我们这边使用的是自定义指令的方式指令在el-select元素上teleported为false不插入body时正好可以在自定义指令中使用el.querySelector(.el-scrollbar__wrap)获取滚动的元素。   5) 自定义指令 前端代码在这里GitHub - wwaini/tao-vue3 at release240625 // src/directives/loadmore/index.js import { debounce } from lodash;export default {mounted(el, binding) {// 不插入body时以下方式可获取元素// 插入body时需要以document.querySelector(.el-scrollbar__wrap)获取let scrollWrap el.querySelector(.el-scrollbar__wrap)// 把监听的方法防抖一下const handle debounce((e) {let scrollDistance scrollWrap.scrollHeight - scrollWrap.scrollTop// 比如此处预留10个像素的位置用于触底if (scrollWrap.clientHeight 10 scrollDistance) {binding.value() // 触底通知一下外界}}, 170)// 绑定监听滚动事件scrollWrap?.addEventListener(scroll, handle)// 方法挂载到元素身上便于解绑时使用el._hanlde handle},unmounted(el, binding) {let scrollWrap document.querySelector(.el-scrollbar__wrap)scrollWrap?.removeEventListener(scroll, el._hanlde)el._hanlde null} } // directives/index.js import loadmore from ./loadmore // 自定义指令对象用于遍历注册 const directives {loadmore } // 批量注册指令并暴露到main.js中去便于注册 export default {install(app) {Object.keys(directives).forEach((key) {app.directive(key, directives[key])})} } // main.js import { createApp } from vue; import App from ./App.vue;const app createApp(App);// 引入并使用自定义指令 import directive from ./directives app.use(directive);app.mount(#app); // src/views/num/six.vue!-- 下拉框触底加载自定义指令 --templatediv classm-4p第一个select/pel-select v-modelvalue v-loadmoreloadmore :teleportedfalse stylewidth:240pxel-option v-foritem in options :keyitem.value :labelitem.label :valueitem.value //el-selectp第二个select/pel-select v-modelvalue v-loadmoreloadmore :teleportedfalse stylewidth:240pxel-option v-foritem in options :keyitem.value :labelitem.label :valueitem.value //el-select/div/templatescript setup import axios from axios; import { onMounted, reactive, ref } from vueconst list ref([]) const options ref([]) const option ref([]) const value ref([]) const loading ref(false) let pageData reactive({pageIndex: 1,pageSize: 10 }) onMounted(() {getOptions() }) const getOptions () {axios.get(http://localhost:9999/getSelectOptions?pageIndex${pageData.pageIndex}pageSize${pageData.pageSize}).then(res {console.log(res.data);if (res.data.length 1) {ElMessage({message: 没有更多数据了...,type: warning,});}const newOptions res.data.map((item) {return { value: item.name, label: item.index }})options.value.push(...newOptions)}) } // 触底了继续发请求 const loadmore () {pageData.pageIndex pageData.pageIndex 1getOptions() }/script如有不足欢迎指正。 不要忽视你达成的每个小目标它是你前进路上的垫脚石。冲
http://www.hkea.cn/news/14291344/

相关文章:

  • 大余网站wordpress模板调用自定义插件
  • 网站开发用什么图片格式最好国内十大搜索引擎排名
  • 网站建设软著网站改版建设公司
  • 网站seo教程初中学历怎么提升大专学历
  • 国家建设管理信息网站张家界市建设工程造价管理站网站
  • 建设项目环保验收平台网站优化网站最好的刷排名软件
  • 自适应网站建设特点石家庄网络开发公司
  • 南昌品牌网站建设天津网站的优化
  • 百胜网站建设财务记账网站建设需要摊销吗
  • 温州文成网站建设gvm网站是什么类的网站
  • 微信用什么小程序可以提取文字现在网站优化
  • 安徽省建设厅官方网站黄世山如何制作微信公众号文章
  • 建设银行校招网站入口深圳建网站
  • 贵州省交通建设集团网站视频 播放网站怎么做
  • 建设厅网站生成案卷生成不了广告设计培训内容
  • 酒店网站建设方案书网站个人备案 企业备案
  • 泉州网站seo上海网站建设联系
  • seo优化能提高网站的流量吗商用图片素材网站
  • 网站制作网站搭建高权重友情链接
  • 做药物分析常用网站色盲能治好吗
  • 网站推广方法有哪些wordpress当面付插件
  • 优秀网站首页设计步骤怎么把网站管理系统
  • 合肥网站建设是什么意思网页设计模板素材代码
  • 泰安网站建设入门合同管理软件
  • 怎么做网站生意彩票网站开发演示
  • 贵阳网站推广¥做下拉去118cr浙江大成建设集团有限公司网站
  • 北京网站优化首页网站建设的基本流程图
  • 富阳营销型网站建设菜鸟学做网站
  • 临沂建设网站公司网站建设和维护试卷
  • 高密微网站建设个人做美食视频网站