从无到有构建vue实战项目(六)
十、徒手撸一个vue下拉左侧二级导航
先附上最终效果图:

vue代码:
<div
class="dropdown-menu-explore"
v-on:mouseover="addDropdownContent(this)"
v-on:mouseout="removeDropdownContent(this)"
>
<span class="dropdown-menu">探索</span>
<span class="dropdown-menu-arrow"></span>
<div class="dropdown-content" v-bind:style="{display:activeDisplay}">
<div class="dropdown-menu-content" id="dropdown-menu-content">
<ul>
<li
v-for="(list,index) in lists"
v-bind:key="index"
v-on:mouseover="addListContent(index)"
v-on:mouseout="removeListContent(this)"
>
<router-link to>{{list.message}}</router-link>
<ul class="dropdown-menu-content-list" v-show="index===isShow">
<li v-for="(item,index) in list.childs" v-bind:key="index">
<router-link to>{{item.subTitle}}</router-link>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
事件:
methods: {
handleSelect: function() {},
//鼠标覆盖显示下拉内容
addDropdownContent: function() {
this.activeDisplay = "block";
return this.activeDisplay;
},
//鼠标移出隐藏内容
removeDropdownContent: function() {
this.activeDisplay = "none";
return this.activeDisplay;
},
addListContent: function(index) {
this.isShow = index;
},
removeListContent: function() {
this.isShow = !this.isShow;
}
},
mounted: function() {
this.isShow = -1;
}
数据
activeDisplay: "none",
isShow: 0,
lists: [
{
id: 1,
message: "理学",
childs: [{ subTitle: "1", subMessage: "这是子菜单信息" }]
},
{
id: 2,
message: "工学",
childs: [{ subTitle: "2", subMessage: "这是子菜单信息" }]
},
{ id: 3, message: "计算机" },
{ id: 4, message: "管理" },
{ id: 5, message: "经济学" },
{ id: 6, message: "外语" },
{ id: 7, message: "四六级" },
{ id: 8, message: "期末冲刺" },
{ id: 9, message: "考研" },
{ id: 10, message: "更多" }
]
十一、引入基于vue的支持markdown语法的编辑器---mavon-editor
基于mavon-editor的丝滑和简洁,我选择引入它作为我项目的一部分,先附上官网地址:https://www.zhystar.com/
接下来一步步将其引入我的项目中:
首先通过npm安装:
npm install mavon-editor --save
全局注册:
十二、错误总结(二)
当我将mavon-editor引入组件中后,出现了一个莫名其妙的错误:

经过排查,是因为我将组件name值与import引入的组件重名了,只需要对name值做出修改即可:


十三、与后端的第一次数据交互测试
登录页面基本完成后,开始进行前后端数据交互测试,项目中使用了axios,后端用了PHP,前端发出请求后,后端返回数据,一度报错,原因是内有解析json数据,解析了json数据后,成功解决问题。
当我在测试时,我有这样一个需求,即通过element的el-input当Enter键按下时,可以触发事件,但是没有任何效果,原因是el-input是封装好的组件,在它外层还有一层div包裹着,所以必须使用.native修饰符,来监听根元素的原生事件,即做出以下修改:

改为:

从无到有构建vue实战项目(六)的更多相关文章
- 从无到有构建vue实战项目(四)
六.webpack的安装和配置 为了快速构建vue项目,webpack是一个必不可少的工具,我们先来安装它,附上官网地址:https://www.webpackjs.com/ 要安装最新版本或特定版本 ...
- 从无到有构建vue实战项目(一)
vue的安装 首先下载nodehttp://nodejs.cn/download/ 有两种安装方式安装包安装和二进制文件安装 输入以下命令,出现版本提示表示安装成功: node -v 10.15.3 ...
- 从无到有构建vue实战项目(二)
二.vue项目的初步搭建 该项目我采用了当下最流行的vue ui框架---element-ui,首先用vue-cli构建一个vue项目: vue create education 然后会出现一系列配置 ...
- 从无到有构建vue实战项目(八)
十六.vue-lazyload的使用 首先,我们需要下载vue-lazyload包: npm i vue-lazyload -S 下载好之后,我们将它引入到自己的项目: //main.js //引入图 ...
- 从无到有构建vue实战项目(三)
四.响应式布局的实现 elemnt-ui参考bootatrap提供了响应式布局,附上地址:https://element.eleme.cn/#/zh-CN/component/layout 以下是我的 ...
- 从无到有构建vue实战项目(五)
八.错误总结(一) webpack打包项目识别子组件路径问题 之所以出现了这样的问题是因为在webpack打包项目时,未将此处的子组件路径正确识别: 将此处的carousel改为carousel.vu ...
- 从无到有构建vue实战项目(七)
十四.Vuex的使用 Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vu ...
- Vue 实战项目: 硅谷外卖(1)
第 1 章: 准备 1.1. 项目描述 1) 此项目为外卖 WebApp(SPA) 2) 包括商家, 商品, 购物车, 用户等多个子模块 3) 使用 Vue 全家桶+ES6+Webpack 等前端最新 ...
- Vue 实战项目开发流程
一 基础配备 ## 一.环境搭建 #### 1.安装node - 去[官网](https://nodejs.org/zh-cn/)下载node安装包 - 傻瓜式安装 - 万一安装后终端没有node环境 ...
随机推荐
- python中时间相关问题,仅作为笔记
1.获取当前时间的两种方法: import datetime,timenow = time.strftime("%Y-%m-%d %H:%M:%S")print nownow = ...
- hadoop之hive高级操作
在输出结果较多,需要输出到文件中时,可以在hive CLI之外执行hive -e "sql" > output.txt操作 但当SQL语句太长或太多时,这种方式不是很方便,可 ...
- 剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染
一.概述 1.1 数字人类的概要 数字人类(Digital Human)是利用计算机模拟真实人类的一种综合性的渲染技术.也被称为虚拟人类.超真实人类.照片级人类. 它是一种技术和艺术相结合的综合性模拟 ...
- 一步到位安装Centos7、配置VMware、连接Xshell
1.创建虚拟机 1.0 创建新的虚拟机 1.0.1 选择自定义配置 打开VMware,点击创建新的虚拟机. 如下图所示: 1.0.2 选择虚拟机硬件兼容性 如下图所示: 1.0.3 安装客户操 ...
- Visual Studio Code配置
Visual Studio Code 从1.23.0开始VS Code就不再默认提供各语言版本, 而是改为使用插件的方式提供语言包. 在插件商店搜索Chinese (Simplified), 安装. ...
- SpringBoot(十九)_404返回统一异常处理结果
之前写过一篇统一异常处理的文章,今天测试了下如果访问一个不存在的接口,也想返回统一的错误信息,应该怎么做 1.修改application.properties文件 # 自定义404 #出现错误时, 直 ...
- Linux系统中sysctl命令详解
sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下.sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发.IP碎 ...
- Python 爬虫从入门到进阶之路(十四)
之前的文章我们已经可以根据 re 模块,Xpath 模块和 BeautifulSoup4 模块来爬取网站上我们想要的数据并且存储在本地,但是我们并没有对存储数据的格式有要求,本章我们就来看数据的存储格 ...
- 并发编程-concurrent指南-线程池ExecutorService的实例
1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...
- 小白开学Asp.Net Core 《六》
小白开学Asp.Net Core <六> —— 探究.Net Core 跨平台的奥秘 1.写这篇文章的初衷 有好多朋友反馈看不懂我写的开源的一个练手项目(GitHub:https://gi ...