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

网站开发职位描述公司培训

网站开发职位描述,公司培训,网站做成微信小程序,php管理系统目录 1、图片懒加载 步骤一#xff1a;自定义全局指令 步骤二#xff1a;代码中使用 ​编辑步骤三#xff1a;效果查看 步骤四#xff1a;代码优化 2、封装组件案例-传对象 3、路由配置——tab标签 4、根据tab标签添加面包屑 4.1、实现 4.2、bug#xff1a;需要…目录 1、图片懒加载 步骤一自定义全局指令 步骤二代码中使用 ​编辑步骤三效果查看 步骤四代码优化 2、封装组件案例-传对象 3、路由配置——tab标签 4、根据tab标签添加面包屑 4.1、实现 4.2、bug需要手动刷新 4.3、解决方案一 4.4、方案优化onBeforeRouteUpdate钩子函数 5、修改路由行为 1、图片懒加载 步骤一自定义全局指令 重构main.js文件 app.directive(img-lazy,{//el:指令绑定元素 img//binding:binding.value 指令后面表达式的值 图片urlmounted(el,binding){ //console.log(el,binding.value)const { stop } useIntersectionObserver(el,([{ isIntersecting }]) {console.log(isIntersecting)if(isIntersecting){el.src binding.value;stop();}})} }) 代码解释: app.directive(img-lazy, { ... })在 Vue 应用中定义一个名为 v-img-lazy 的全局指令。 mounted(el, binding) { ... }这是指令的 mounted 钩子函数它在被绑定的元素插入到父节点时调用。 el指令所绑定的元素在这里是一个 img 标签。binding一个对象包含了很多属性其中 binding.value 是指令等号后面的值这里是图片的 URL。 const { stop } useIntersectionObserver(el, callback)使用vueuse/core的 API - useIntersectionObserver 函数来观察 el 元素是否进入视口。 el要观察的 DOM 元素。callback一个回调函数当元素与视口有交集时调用。stop一个函数用于停止观察。 ([{ isIntersecting }]) { ... }这是 useIntersectionObserver 的回调函数。 isIntersecting一个布尔值表示元素是否进入视口。 if(isIntersecting) { ... }如果 isIntersecting 为 true说明图片进入了视口。 el.src binding.value;设置图片元素的 src 属性为指令的值图片的 URL从而开始加载图片。stop();停止观察因为图片已经加载不需要再观察其是否进入视口。 步骤二代码中使用 img v-img-lazyitem.picture alt 步骤三效果查看 步骤四代码优化 把这些代码都写在main.js中main.js中的内容太过于杂乱了些我们整理一下在根目录下创建directives/index.js import { useIntersectionObserver } from vueuse/coreexport const lazyPlugin {install (app) {// 懒加载指令逻辑app.directive(img-lazy, {mounted (el, binding) {// el: 指令绑定的那个元素 img// binding: binding.value 指令等于号后面绑定的表达式的值 图片urlconsole.log(el, binding.value)const { stop } useIntersectionObserver(el,([{ isIntersecting }]) {console.log(isIntersecting)if (isIntersecting) {// 进入视口区域el.src binding.valuestop()}},)}})} } main.js中 2、封装组件案例-传对象 向组件传值的另一个案例-传普通值在本系列文章前端项目个人笔记二【Vue-cli - 引入阿里矢量库图标 吸顶交互 setup语法糖】 调用的地方: 很明显我们是有一个GoodItem组件并且我们直接把good的这个对象传过去了 GoodItem组件代码 script setup defineProps({good: {type: Object,default: () { }} }) /scripttemplateRouterLink to/ classgoods-itemimg v-img-lazygood.picture alt /p classname ellipsis{{ good.name }}/pp classdesc ellipsis{{ good.desc }}/pp classpriceyen;{{ good.price }}/p/RouterLink /templatestyle scoped langscss .goods-item {display: block;width: 220px;padding: 20px 30px;text-align: center;transition: all .5s;:hover {transform: translate3d(0, -3px, 0);box-shadow: 0 3px 8px rgb(0 0 0 / 20%);}img {width: 160px;height: 160px;}p {padding-top: 10px;}.name {font-size: 16px;}.desc {color: #999;height: 29px;}.price {color: $priceColor;font-size: 20px;} } /style 可以重点看一下是如何接收父组件传来的对象的·~ 3、路由配置——tab标签 路由配置: 效果: 4、根据tab标签添加面包屑 4.1、实现 效果: 这个值的获取是根据url中的id查询到tab的name的因此第一步我们需要封装一个查询请求 api/category.js import http from /utils/http;/*** description: 根据id获得一级分类对象信息* param {*} id 分类id* return {*}*/ export function getTopCategoryAPI(id){return http.get(/category,{params:{id}}); } 使用:  Category/index.vue: script setup import {getTopCategoryAPI} from /api/category import {useRoute} from vue-router; import {onMounted, onUpdated, ref} from vue;const categoryData ref({}) const route useRoute() const getCategory async () {// 如何在setup中获取路由参数 useRoute() - route 等价于this.$route//console.log(route.params.id);const res await getTopCategoryAPI(route.params.id)categoryData.value res.result } onMounted(()getCategory()) /scripttemplatediv classtop-categorydiv classcontainer m-top-20!-- 面包屑 --div classbread-containerel-breadcrumb separatorel-breadcrumb-item :to{ path: / }首页/el-breadcrumb-itemel-breadcrumb-item{{ categoryData.name }}/el-breadcrumb-item/el-breadcrumb/div/div/div /templatestyle scoped langscss .top-category {h3 {font-size: 28px;color: #666;font-weight: normal;text-align: center;line-height: 100px;}.sub-list {margin-top: 20px;background-color: #fff;ul {display: flex;padding: 0 32px;flex-wrap: wrap;li {width: 168px;height: 160px;a {text-align: center;display: block;font-size: 16px;img {width: 100px;height: 100px;}p {line-height: 40px;}:hover {color: $xtxColor;}}}}}.ref-goods {background-color: #fff;margin-top: 20px;position: relative;.head {.xtx-more {position: absolute;top: 20px;right: 20px;}.tag {text-align: center;color: #999;font-size: 20px;position: relative;top: -20px;}}.body {display: flex;justify-content: space-around;padding: 0 40px 30px;}}.bread-container {padding: 25px 0;} } /style 重点代码 4.2、bug需要手动刷新 bug原因当你在同一个组件内点击时他会复用之前的组件 所以就不会刷新了需要手动刷新~ 4.3、解决方案一 在路由入口处处理 RouterView :key$route.fullPath/ 方案将路由入口中的所有组件全部都会重新加载~ 而我们只需要对应的组件刷新即可因此就有了方案优化 4.4、方案优化onBeforeRouteUpdate钩子函数 onBeforeRouteUpdate((to){getCategory(to.params.id) }) 5、修改路由行为 我们会发现当我们在首页时右侧滚动条可能是在中间当我们切到美食时滚动条还是在中间没有跳到最上面。处理 scrollBehavior(){return{top:0} }
http://www.hkea.cn/news/14546450/

相关文章:

  • 江苏省建设考试培训网站百度查找相似图片
  • 类似优酷网站建设价格济南兼职做网站
  • 北京旅游型网站建设赣州网站设计较好的公司
  • 国家为何要求所有网站均须备案wordpress安装上传
  • 温州手机网站推广常德百度推广运营
  • 湖南湘源建设工程有限公司网站外包公司被辞退有补偿吗
  • 重庆网站建设平台更改wordpress主题字体
  • 电子商务网站开发软件怎么做网站的优化排名
  • 上海网站建设 数字展厅模板网站为什么做不了优化
  • 做直播导航网站怎么找推广平台
  • 做网站必须会编程吗网页设计教材
  • 网站域名分几种google网站管理员工具 下载
  • 旅游网站开发项目策划书网站开发路线
  • 男女怎么做那个视频网站一个门户网站多少钱
  • 上海公司网站建设哪家好wordpress 二级目录 404
  • 网站建设的具体任务有哪些方面网站备案 更换接入商
  • 企业网站建设报价模板网站开发是自己开发还是外包的
  • 帮别人做网站赚钱什么自己做网站吗
  • 上海网站开发哪家好薇广州专业网站改版哪家好
  • 旅游网站开发的流程wordpress调取某页面
  • 中国网络营销网站苏州公司
  • 路由器设置手机网站打不开做网站是否要备案
  • 网站建设最低价中国建设网官网查询登录入口
  • 中山网站建设咨询科技背景图
  • 网站广告推广公司大地影院资源免费观看视频
  • 网站案例模板移动端网站开发教程
  • 上海网站建设导航网站301重定向
  • 欢迎访问中国建设银行网站私人订制网站建设
  • seo营销外包四川网络推广seo
  • 搭建好ftp服务器 如何通过网站访问哪个平台电商运营比较好