在写本文之前要问自己几个问题,来说明为什么要这么做:

为什么在html中使用vue.js?

  vue.js已经趋于成熟,个人感觉比jquery要好用的多,但是在node环境下使用vue.js不用使用SSR后端渲染的情况下SEO并不友好,所以就想着在html直接引用vue.js当做jquery使用。

为什么不使用SSR后端渲染?

  因为本人搞后台开发使用的是JAVA,所以要想SSR必须使用nodejs作为服务端,所以我并没有太多时间学习nodejs

所以最后决定在后台使用thymeleaf模板引擎中使用vue.js,我做的是一个博客系统,我从入行开始就想有一个属于自己的博客,但是当时时间和技术都是非常有限的,所以一直没有把这件事提上日程,今年是我第二年工作,感觉学习的技术足可以做一个简单的博客了,本人博客园也会围绕我自己搭建的个人博客遇到的问题展开技术的分享,下一篇介绍我的来历还有我的经历,如果有人看见的话希望我们可以交流技术可以互相学习,好了废话不多说,我要解决的问题是,博客的导航栏的复用,就是头部导航栏点中的话就高亮,就要实现这么一个简单的问题。

  使用的技术:

      vue.js模板、Element 导航栏

本人没有写过太多博客,所以博客的排版可能不太好,请您原谅,这个坑不适用于nodejs下的vue开发,因为那个环境下是单页应用,我只是当成jq来用的,所以可能不太规范,请您谅解。

要解决的问题:

  复用导航栏,而且有选中高亮。

实现的效果:

  

切换tab

最终效果就是这样,切换后自动选中,不是在每个页面都写一遍导航栏,那样太难维护了!

代码:

// 定义一个名为 his-header 的新组件
Vue.component('his-header', {
data: function () {
return {
index: 0
}
},
props: ['indexs'],
template: '<el-menu :default-active="index" class="el-menu-demo" mode="horizontal"><li class="el-menu-item index" style="margin-left: 20%;"><h2><a href="/">起码网</a></h2></li><el-menu-item index="1"><a href="/">首页</a></el-menu-item><el-menu-item index="2"><a href="/resource">建站教程</a></el-menu-item><el-menu-item index="3"><a href="/resource">应用中心</a></el-menu-item><el-menu-item index="4"><a href="https://www.ele.me" target="_blank">资源分享</a></el-menu-item><el-menu-item index="5"><a href="https://www.ele.me" target="_blank">随笔杂谈</a></el-menu-item><el-menu-item index="6"><a href="/about">关于我</a></el-menu-item></el-menu>',
mounted: function () {//创建完模板以后再赋值让element 选中菜单
this.index = this.indexs;
}
})
<his-header v-bind:indexs="1"></his-header>
<his-header v-bind:indexs="2"></his-header>
在每个页面只要使用这样的标签就可以实现了!

普通页面使用vue.js心得的更多相关文章

  1. vue.js初级入门之最基础的双向绑定操作

    首先在页面引入vue.js以及其他需要用到的或者可能要用到的插件(这里我多引用了bootstrap和jquery) 引用的时候需要注意文件的路径,准备工作这样基本就完成了,下面正式开始入门. vue. ...

  2. 为什么推荐前端使用Vue.js

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  3. 深入解析vue.js响应式原理与实现

    vue.js响应式原理解析与实现.angularjs是通过脏检查来实现数据监测以及页面更新渲染.之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新渲染页面.vue.js ...

  4. Springboot 项目源码 Activiti6 工作流 vue.js html 跨域 前后分离 websocket即时通讯

    特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接 ...

  5. Springboot vue.js html 跨域 前后分离 shiro权限 集成代码生成器

    本代码为 Springboot vue.js  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ mybaits+maven+接口 前端页面:html + ...

  6. Springboot Activiti6 工作流 集成代码生成器 shiro 权限 vue.js html 跨域 前后分离

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  7. Springboot vue.js html 跨域 前后分离 Activiti6 工作流 集成代码生成器 shiro 权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  8. Springboot 项目源码 vue.js html 跨域 前后分离 shiro权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  9. Springboot vue.js html 跨域 前后分离 Activiti6 shiro 权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

随机推荐

  1. Acdream A - Unique Attack

    A - Unique Attack Time Limit: 6000/3000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)   ...

  2. xml01 验证

    xml 验证 拥有正确的格式的xml是"形势良好"的xml 通过DTD验证的xml是"合法的"xml

  3. 从MySQL临时表谈到filesort

    内部临时表的类型和产生时机相关,翻译自:http://dev.mysql.com/doc/refman/5.6/en/internal-temporary-tables.html In some ca ...

  4. [Office]PPT 2013如何设置图片为半透明?

    PPT里面似乎无法直接为图片设置透明度属性.下面是一种变通的办法. 1,插入一个和图片大小一致的图形(矩形):2,右键插入的矩形,然后在属性设置里选择“图片填充”,选择以需要的图片填充到该矩形里:3, ...

  5. c# 与java base64 不一致解决方案

    不一致的问题不是编码的问题  而是json字符串的问题通常我们会json 嵌套  我们先来看连个字符串 {"contentType":"","http ...

  6. Java笔试面试题001

    Java笔试面试题之中的一个 1.Struts1中actionform和action属于MVC哪一层,为什么? 解答:actionform和action属于MVC的Model层,Action用来处理业 ...

  7. java 正则表达式(一)

    1匹配验证-验证Email是否正确 Java | 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public static void main(String[] args)  ...

  8. Python 下的 return 关键字

    def make_sum(a, b): return ('+', a, b) >> make_sum(1, 2) ('+', 1, 2) 显示地返回一个元组(tuple),当然 retur ...

  9. c++面向对象程序设计 谭浩强 第三章答案

    2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,in ...

  10. Migrations有两个文件迁移数据的方法

    不分开迁移报错如下; 解决方案 1 迁移Migration/nfoManage EntityFramework\Enable-Migrations -ContextTypeName InfoModel ...