欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Vue项目练习之简单的小相册

Vue项目练习之简单的小相册

2024/11/30 2:54:17 来源:https://blog.csdn.net/DZ_OP/article/details/144016715  浏览:    关键词:Vue项目练习之简单的小相册

使用前面学过的vue3框架的知识来制作一个简单的相册

知识点:https://blog.csdn.net/DZ_OP/article/details/144009207?spm=1001.2014.3001.5501

首先我们来看一下完整的代码,通过剖析这些代码一步步学会如何运用所学知识

注意:四张图片的路径为:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>相册</title><style>.clear_ele::after{content: "";  /* 这个伪元素的内容属性必须有 */display: block;clear: both;}.box{margin-bottom: 20px;padding: 0;}.button{background-color: bisque;width: 20px;float: left;  text-align: center;margin-right: 10px;border-radius: 8px;cursor: pointer;  }.img{width: 480px;  height: 240px;border: 1px bisque solid;}</style>
</head><body><div id="app"><h2>基于Vue3实现的相册:展示第{{ img.number }}张相片</h2><img v-bind:src="img.url"   class="img"> <ul type="none" class="clear_ele box"><li v-for="(val, idx) in 4"  @click="jump(val)" class="button"> {{val}} </li></ul><button @click="prev">上一张</button>     <button @click="next">下一张</button></div><script type="module">import { createApp,  ref,  reactive } from './vue.esm-browser.js'createApp({setup() {// 【定义数据】const img = reactive({number: 1,url: "./img_src/logo1.png"})// 【定义函数】//上一张const prev = () => {img.number--if (img.number == 0) {img.number = 4}img.url = `./img_src/logo${img.number}.png`                 }                //下一张const next = () => {img.number++if (img.number == 5) {img.number = 1}img.url = `./img_src/logo${img.number}.png`}//跳转const jump = (val) => {img.number = valimg.url = `./img_src/logo${img.number}.png`}return {img, prev,next,jump}}}).mount("#app")</script>
</body></html>

示例效果:

首先我们需要写好一个基本的html框架,css里必须写进防止高度塌陷的代码,才不会导致块与块之间展现出”丑陋“的样子。

<style>.clear_ele::after{content: "";  /* 这个伪元素的内容属性必须有 */display: block;clear: both;}.box{margin-bottom: 20px;padding: 0;}.button{background-color: bisque;width: 20px;float: left;  text-align: center;margin-right: 10px;border-radius: 8px;cursor: pointer;  }.img{width: 480px;  height: 240px;border: 1px bisque solid;}</style>

接着vue框架部分,我们需要先导入模块

  import { createApp,  ref,  reactive } from './vue.esm-browser.js'

使用响应式数据reactive来定义数据

  const img = reactive({number: 1,url: "./img_src/logo1.png"})

过v-bind来绑定数据,使得”上一张“按钮做出了事件行为(里面写了一个if函数来实现图片路径的自减)

<button @click="prev">上一张</button>
const prev = () => {img.number--if (img.number == 0) {img.number = 4}img.url = `./img_src/logo${img.number}.png`                 }        

同样的做法,为”下一张“按钮做出用样的操作(会做一个按钮就会做第二个第n个按钮)

​
<button @click="next">下一张</button>const next = () => {img.number++if (img.number == 5) {img.number = 1}img.url = `./img_src/logo${img.number}.png`}​

接着我们需要使用反引号来实现控制这个字符,v-for做一个遍历来实现跳转功能

  const jump = (val) => {img.number = valimg.url = `./img_src/logo${img.number}.png`}
   <ul type="none" class="clear_ele box"><li v-for="(val, idx) in 4"  @click="jump(val)" class="button"> {{val}} </li></ul>

最后将其暴露出来

 return {img, prev,next,jump}

这样我们一个简单的相册就制作完成了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com