Web实验十四 Vue基础

Web实验十四 Vue基础

一、实验目的:

1、掌握Vue的创建

2、掌握Vue的事件处理

3、掌握Vue的数据绑定

二、实验内容:

根据提供的实验样例,使用Vue.js替换原有代码,以列表渲染、事件处理、模板语法等方式完成以下效果的网页设计:

初始页面如下:

在这里插入图片描述

红框处的样式如下:

(1) 字体大小为13px,字体颜色为#18191C。

(2) 上下填充为8px,左右填充为16px。

(3) 边框线宽度为1px,边框样式为实线,边框线颜色为#E3E5E7,边框半径为8px。

(4) 行间距为16px,背景颜色为#FFFFFF。

(5) 鼠标放在按钮上时,鼠标变成手型,且0.2秒后按钮的背景颜色变成#E3E5E7。

(6) 点击按钮后,视频随机更换,如下:

在这里插入图片描述

三、实验代码:

<html>
	<head>
		<script src="vue.global.js"></script>
		<style>
			body {
				padding: 0;
				margin: 0;
			}
			a {
				text-decoration: none;
			}
			ul {
				list-style-type: none;
				padding: 0;
			}
			.channel-layout {
				padding: 0 64px;
			}
			.channel-nav-sub-item a {
				color: #61666D;
				font-size: 15px;
			}
			.channel-nav-name a {
				color: #18191C;
				font-size: 22px;
			}
			.channel-nav {
				display: flex;
				align-items: center;
			}
			.fix-wrapper {
				height: 64px;
				padding: 0 64px;
				box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
			}
			.channel-nav-name {
				margin-right: 20px;
				min-width: max-content;
			}
			ul.channel-nav-sub-ul {
				display: flex;
				justify-content: space-between;
				list-style-type: none;
				padding: 0;
				width: 620px;
			}
			.grid {
				display: grid;
				grid-template-columns: repeat(5, 1fr);
				grid-gap: 20px 12px;
			}
			.video-card-image img {
				width: 100%;
				border-radius: 6px;
			}
			.video-card-body {
				display: grid;
				grid-template-columns: repeat(4, 1fr);
				grid-gap: 20px 12px;
			}
			.video-card-list {
				grid-column: span 4;
			}
			.video-card-info-tit a {
				color: #18191C;
			}
			.video-card-info-bottom span {
				color: rgb(148, 153, 160);
				font-size: 13px;
			}
			.area-header span,
			.aside-head span {
				font-size: 20px;
				color: rgb(24, 25, 28);
			}
			.area-header,
			.aside-head {
				margin: 16px 0;
			}
			.rank-list-video-item-index {
				font-family: Avenir;
				font-style: italic;
				font-size: 14px;
				font-weight: 600;
				color: #C9CCD0;
				margin-right: 6px;
				width: 20px;
				text-align: center;
			}
			.rank-list-video-item:nth-child(1) .rank-list-video-item-index {
				color: #ff473d;
			}
			.rank-list-video-item:nth-child(2) .rank-list-video-item-index {
				color: #ff6a29;
			}
			.rank-list-video-item:nth-child(3) .rank-list-video-item-index {
				color: #ff9214;
			}
			.rank-list-video {
				display: grid;
				border: 1px solid #F1F2F3;
				border-radius: 6px;
				background-color: #F6F7F8;
			}
			.rank-list-video-item-wrap {
				display: flex;
				align-items: center;
			}
			.rank-video-card-info-tit {
				color: #18191C;
				font-size: 14px;
				line-height: 18px;
				text-overflow: ellipsis;
				overflow: hidden;
			}
			.rank-list-video-item {
				white-space: nowrap;
				overflow: hidden;
			}
			.rank-list-video-item:nth-child(2n+1) {
				background-color: #FFFFFF;
			}
			.rank-list-video-item:nth-child(2n) {
				background-color: #F6F7F8;
			}
			.rank-video-card-info,
			.rank-video-card {
				min-width: 0;
			}

			/* 在下面增添样式使得达到实验效果 */
			.area-header{
				display: inline-block;
				width: 100%;
			}
			.left{
				float: left;
			}
			.right{
				float: right;
			}
			.primary-button span{
				font-size: 13px;
				color: #18191C;
			}
			.primary-button{
				padding: 8px 16px;
				border: 1px solid #E3E5E7;
				border-radius: 8px;
				line-height: 16px;
				background-color: #FFFFFF;
			}
			.primary-button:hover {
				cursor: pointer;
				transition-duration: 0.2s;
				background-color: #E3E5E7;
			}
		</style>
	</head>
	<body>
		<div class="container" id="app">
			<div class="fix-wrapper">
				<div class="channel-nav">
					<div class="channel-nav-name"><a href="">生活</a></div>
					<div class="channel-nav-sub">
						<ul class="channel-nav-sub-ul">
							<li class="channel-nav-sub-item"><a href="">首页</a></li>
							<li class="channel-nav-sub-item"><a href="">搞笑</a></li>
							<li class="channel-nav-sub-item"><a href="">亲子</a></li>
							<li class="channel-nav-sub-item"><a href="">出行</a></li>
							<li class="channel-nav-sub-item"><a href="">三农</a></li>
							<li class="channel-nav-sub-item"><a href="">家居房产</a></li>
							<li class="channel-nav-sub-item"><a href="">手工</a></li>
							<li class="channel-nav-sub-item"><a href="">绘画</a></li>
							<li class="channel-nav-sub-item"><a href="">日常</a></li>
						</ul>
					</div>
				</div>
			</div>
			<div class="channel-layout">
				<div class="grid">
					<div class="video-card-list">
						<div class="area-header">
							<div class="left">
								<a href=""><span>搞笑</span></a>
							</div>
							<div class="right">
								<button class="primary-button" type="button" @click="changeVideo">
									<span>换一换</span>
								</button>
							</div>
						</div>
						
						<div class="video-card-body">
							<div class="video-card" v-for="(video, index) in displayedVideos" :key="index">
								<div class="video-card-image">
									<img :src="video.img" :alt="video.alt">
								</div>
								<div class="video-card-info">
									<h4 class="video-card-info-tit"><a :href="video.href">{{ video.title }}</a></h4>
									<div class="video-card-info-bottom">
										<a :href="video.authorSpace">
											<span class="video-card-info-author">{{ video.author }}</span>
											<span class="video-card-info-date">{{ video.date }}</span>
										</a>
									</div>
								</div>
							</div>
						</div>
					</div>

					<div class="aside-wrap">
						<div class="aside-head">
							<a href=""><span>热门</span></a>
						</div>
						<div class="aside-body">
							<ul class="rank-list-video">
								<li class="rank-list-video-item" v-for="(video, index) in rankListVideo" :key="index">
									<div class="rank-list-video-item-wrap">
										<span class="rank-list-video-item-index">{{ index + 1 }}</span>
										<a class="rank-video-card" :href="video.href">
											<div class="rank-video-card-info">
												<h3 class="rank-video-card-info-tit">{{ video.title }}</h3>
											</div>
										</a>
									</div>
								</li>
							</ul>
						</div>
					</div>
				</div>
			</div>
		</div>

		<script src="vue.global.js"></script>
		<script>
			const app = Vue.createApp({
				data() {
					return {
						videoCardList: [{
							img: "https://i2.hdslb.com/bfs/archive/cf1400c8a93d270e2dcc398603f95693bc38e023.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "领导说干不了就滚",
							href: "https://www.bilibili.com/video/BV1nC4y1G7qx/?spm_id_from=333.1073.sub_channel.dynamic_rank_video.click",
							title: "领导说干不了就滚",
							authorSpace: "https://space.bilibili.com/5294454",
							author: "逗比的雀巢",
							date: "· 10-14"
						},
						{
							img: "https://i2.hdslb.com/bfs/archive/416e0d76ae544e4dbd1e313f17ceadeb1eb7181c.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "公司要爆炸了 好难过",
							href: "https://www.bilibili.com/video/BV1hw41117wh/?spm_id_from=333.999.0.0",
							title: "公司要爆炸了 好难过",
							authorSpace: "https://space.bilibili.com/5294454",
							author: "逗比的雀巢",
							date: "· 10-1"
						},
						{
							img: "https://i2.hdslb.com/bfs/archive/c98651d66ca02ffc5f4aab37e07a1fe61f66537e.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "这可比手术刀好用多了",
							href: "https://www.bilibili.com/video/BV1XN411873W/?spm_id_from=333.999.0.0",
							title: "这可比手术刀好用多了",
							authorSpace: "",
							author: "逗比的雀巢",
							date: "· 8-14"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/b3d043827eb0fd54cf261bf282d1840756e73034.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "用浏览记录绑架你",
							href: "https://www.bilibili.com/video/BV14V411L7GV/",
							title: "用浏览记录绑架你",
							authorSpace: "https://space.bilibili.com/5294454",
							author: "逗比的雀巢",
							date: "· 7-23"
						},
						{
							img: "https://i1.hdslb.com/bfs/archive/3e6d0217919e4148a7dae1d9e491b88ba0be8ef9.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "答非所问(奥义超级版)",
							href: "https://www.bilibili.com/video/BV1CN41147Eo/?spm_id_from=333.1073.sub_channel.dynamic_rank_video.click",
							title: "答非所问(奥义超级版)",
							authorSpace: "https://space.bilibili.com/5970160",
							author: "小潮院长",
							date: "· 10-16"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/c608616167a75cf9d7883d5824e5774835f6b67a.jpg@440w_276h_1c_!web-space-index-topvideo.avif",
							alt: "谋 权 篡 位(番外篇①)",
							href: "https://www.bilibili.com/video/BV1aG411W7zm/?spm_id_from=333.999.0.0",
							title: "谋 权 篡 位(番外篇①)",
							authorSpace: "https://space.bilibili.com/5970160",
							author: "小潮院长",
							date: "· 7-9"
						},
						{
							img: "https://i2.hdslb.com/bfs/archive/3bcf9c1e0eab672fc3b73a344ea587ca6e2b691d.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "谋 权 篡 位(番外篇②)",
							href: "https://www.bilibili.com/video/BV1YF41197Lj/?spm_id_from=333.999.0.0",
							title: "谋 权 篡 位(番外篇②)",
							authorSpace: "https://space.bilibili.com/5970160",
							author: "小潮院长",
							date: "· 7-15"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/208a8f27881bf996680490f9a47d7f8a1eaa2e1a.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "不要“做”挑战?(第十七期)",
							href: "https://www.bilibili.com/video/BV1H94y1k7JU/?spm_id_from=333.999.0.0",
							title: "不要“做”挑战?(第十七期)",
							authorSpace: "https://space.bilibili.com/5970160",
							author: "小潮院长",
							date: ". 8-13"
						},
						{
							img: "https://i1.hdslb.com/bfs/archive/4fa524a342e2acc2115c1b5e81ca154e58bf48eb.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "眼“色”游戏 (9)",
							href: "https://www.bilibili.com/video/BV1b14y1p7ju/",
							title: "眼“色”游戏 (9)",
							authorSpace: "https://space.bilibili.com/5970160",
							author: "小潮院长",
							date: ". 11-8"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/04b226cbdb6190d7a7542385b6943ae173ded627.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "公司里充斥着弟弟满意的微笑~",
							href: "https://www.bilibili.com/video/BV1dg4y1X7s2/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "公司里充斥着弟弟满意的微笑~",
							authorSpace: "https://space.bilibili.com/3494358571550728",
							author: "禁狱系男孩a",
							date: ". 11-8"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/14f6fc39ce722b4e3a082ac4cf2d474e0c21ba1e.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "知识真的有力量",
							href: "https://www.bilibili.com/video/BV1hj411h78s/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "知识真的有力量",
							authorSpace: "https://space.bilibili.com/485359169",
							author: "邢三狗子",
							date: "· 11-8"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/df3c999cb73ac0381fef1787e5efdb6e72ca2792.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "诺贝尔亲自颁奖!",
							href: "https://www.bilibili.com/video/BV1Gu4y1N7FD/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "诺贝尔亲自颁奖!",
							authorSpace: "https://space.bilibili.com/70429299",
							author: "嘞是唐孃孃",
							date: "· 11-7"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/1033717a8d872ed5a68e4a01fb5be398a752449a.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "家丑又外扬了",
							href: "https://www.bilibili.com/video/BV1kM411S7x3/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "家丑又外扬了",
							authorSpace: "https://space.bilibili.com/1155574439",
							author: "真子日记",
							date: "· 11-8"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/3c56b59646cf8f2269c25dad76cfca484d9140ed.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "各地人信念崩塌的瞬间!",
							href: "https://www.bilibili.com/video/BV1ba4y1Q7pV/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "各地人信念崩塌的瞬间!",
							authorSpace: "https://space.bilibili.com/95515699",
							author: "粤知一二",
							date: "· 11-10"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/83bcf724c4df2bfc6742b0386b0c4668453d32fa.jpg@320w_200h_1c_!web-space-index-myvideo.avif",
							alt: "校园里的大恩人(最搞笑的哇)",
							href: "https://www.bilibili.com/festival/tmall1111?bvid=BV1sg4y1d7Lg&spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "校园里的大恩人(最搞笑的哇)",
							authorSpace: "https://space.bilibili.com/68439967",
							author: "萧枭同学",
							date: "· 11-7"
						},
						{
							img: "https://i0.hdslb.com/bfs/archive/a9373801a3c2ace632fcc1b6ae19d2237a6f4261.jpg@320w_200h_1c_!web-space-upload-video.avif",
							alt: "还有哪个舍友不听话",
							href: "https://www.bilibili.com/video/BV1kg4y197pN/?spm_id_from=333.1073.sub_channel.latest_video.click",
							title: "还有哪个舍友不听话",
							authorSpace: "https://space.bilibili.com/585238746",
							author: "三哈兄弟-沙雕日常",
							date: "· 11-10"
						}],
						rankListVideo: [{
							href: "https://www.bilibili.com/video/BV1nC4y1G7qx/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "领导说干不了就滚"
						},
						{
							href: "https://www.bilibili.com/video/BV1s841167EX/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "遗憾终究是遗憾"
						},
						{
							href: "https://www.bilibili.com/video/BV1Zw411c7ya/",
							title: "不多说了,请看vcr"
						},
						{
							href: "https://www.bilibili.com/video/BV1CN41147Eo/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "答非所问(奥义超级版)"
						},
						{
							href: "https://www.bilibili.com/video/BV16G411m7QY/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "默契兄弟"
						},
						{
							href: "https://www.bilibili.com/video/BV16C4y1G7Nk/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "【误 入 大 电 音 寺】"
						},
						{
							href: "https://www.bilibili.com/video/BV1Wj411t7SQ/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "你的童年遗憾有哪些?"
						},
						{
							href: "https://www.bilibili.com/video/BV1Py4y1N72x/?spm_id_from=333.1073.channel.secondary_floor_rank.click",
							title: "各地人的娱乐项目"
						}],
					};
				},
				computed: {
					displayedVideos() {
						return this.videoCardList.slice(0, 8);
					}
				},
				methods: {
					changeVideo() {
						const shuffled = this.videoCardList.sort(() => 0.5 - Math.random());
						this.videoCardList = shuffled;
					}
				}
			});
			app.mount('#app');
			
		</script>
	</body>
</html>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue基础Web项目模板下载非常简单,可以按照以下步骤进行: 第一步,打开浏览器,访问Vue官方网站(https://cn.vuejs.org/)。 第二步,点击页面上方的“文档”按钮,进入Vue的文档页面。 第三步,在文档页面的左侧导航栏中,找到“起步 - 快速原型”这一部分。 第四步,在“起步 - 快速原型”部分中,你可以看到一个“下载vue-cli”按钮,点击它。 第五步,你将被带到Vue CLI的GitHub页面,这是Vue的一个脚手架工具,用于快速搭建Vue项目。 第六步,滚动页面,找到一个名为“vue-cli 3.x”的链接,点击它。 第七步,你将跳转到Vue CLI 3.x的npm页面,其中包含有关Vue CLI的详细信息和用法。 第八步,翻滚页面,你可以看到一个类似于“npm install -g @vue/cli”的命令,这是用于全局安装Vue CLI的命令。 第九步,打开终端,输入上述命令并执行,等待安装完成。 第十步,安装完成后,在终端中输入“vue create 项目名称”,其中“项目名称”是你想要创建的项目的名称。 第十一步,按照终端中的提示,选择需要的特性、配置和插件,然后等待项目创建完成。 第十二步,项目创建完成后,你就可以在本地磁盘中找到你的项目文件夹,里面包含了一个基础Vue Web项目模板。 总结起来,下载Vue基础Web项目模板只需要通过Vue CLI工具进行项目的创建和初始化,然后你就可以在本地磁盘中找到你的项目文件夹了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值