深入理解vue2.0路由如何配置问题


Posted in Javascript onJuly 18, 2017

这两天学习了Vue.js 感觉路由这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记。

项目基本手脚架搭建完毕后,建一个router文件夹,里面配置一个index.js文件。

文件内容:

npm install vue-router vue-resource --save-dev(安装 vue 路由模块vue-router和网络请求模块vue-resource)

import Vue from 'vue' 
import Router from 'vue-router' (----引入路由---注释说明) 
import About from '@/components/about'(--这些需要引入的是components文件夹下面创建的一些模板---相对路径----about代表about.vue模块) 
import Home from '@/components/home' 
import Brand from '@/components/brand' 
import Company from '@/components/company' 
import Connect from '@/components/connect' 
import Main from '@/components/main' 
import Join from '@/components/join' 
import News from '@/components/news' 
import Products from '@/components/products' 
import son1 from '@/components/son1' 
import son2 from '@/components/son2' 
import list from '@/components/list' 
import newList from '@/components/newList' 
import culture from '@/components/culture' 
import certification from '@/components/certification' 
import zhuanjia from '@/components/zhuanjia' 
Vue.use(Router) (--使用---) 
 
export default new Router({ 
 routes: [ 
  { 
   path: '/main', 
   name: 'main', 
   component: Main 
  },-------------------------------- 
  { path: '/',           这里是路由重定向,比如页面加载时候进入首页 
   redirect: '/main'          (比如给路由一个选中后的样式为红色 那么这里就能用到了---.router-link-active{样式}) 
  },--------------------------------- 
  {---------------------这里是配置子路由 
   path: '/brand', 
   name: 'brand', 
   component: Brand, 
   children: [ 
    { 
     path: '/', 
     name: 'newList', 
     component: newList 
    }, 
    { 
     path: '/brand/culture', 
     name: 'culture', 
     component: culture 
    }, 
    { 
     path: '/brand/certification', 
     name: 'certification', 
     component: certification 
    }, 
    { 
     path: '/brand/zhuanjia', 
     name: 'zhuanjia', 
     component: zhuanjia 
    } 
   ] 
  }, 
  { 
   path: '/about', 
   name: 'about', 
   component: About 
  }, 
  { 
   path: '/company', 
   name: 'company', 
   component: Company 
  }, 
  { 
   path: '/connect', 
   name: 'connect', 
   component: Connect 
  }, 
  { 
   path: '/home', 
   name: 'home', 
   component: Home 
  }, 
  { 
   path: '/join', 
   name: 'join', 
   component: Join, 
   children: [ 
    { 
     path: '/', 
     name: 'son1', 
     component: son1 
    }, 
    { 
     path: '/join/son2', 
     name: 'son2', 
     component: son2 
    } 
   ] 
  }, 
  { 
   path: '/list', 
   name: 'list', 
   component: list 
  }, 
  { 
   path: '/news', 
   name: 'news', 
   component: News 
  }, 
  { 
   path: '/products', 
   name: 'products', 
   component: Products 
  } 
 ] 
})

接下来就是在每一个模块文件中加入这样的一句话暴露出去:

<script> 
export default { 
 name: 'about' ---自定义模块名字 
} 
</script>

在app中我们可以这样写:

<template> 
 <div id="app1" class="pagebox"> 
    <div style="clear:both;"></div> 
    <ul class="index-tap"> 
      <li><router-link to="/main">首页<p></p></router-link></li> 
      <li><router-link to="/about">关于我们<p></p></router-link></li> 
      <li><router-link to="/products">产品专区<p></p></router-link></li> 
      <li><router-link to="/news">新闻资讯<p></p></router-link></li> 
    </ul> 
    <ul class="index-tap"> 
      <li><router-link to="/company">企业风采<p></p></router-link></li> 
      <li><router-link to="/join">招商加盟<p></p></router-link></li> 
      <li><router-link to="/connect">联系我们<p></p></router-link></li> 
      <li><router-link to="/brand">品牌介绍<p></p></router-link></li> 
    </ul> 
    <div style="clear:both;"></div> 
    <router-view transition transition-mode="out-in"></router-view> 
    <div style="clear:both;"></div> 
    <ul class="index-footer clearx"> 
      <li v-on:click="showph = !showph">电话</li> 
      <li v-on:click="showmap = !showmap">地图</li> 
      <li v-on:click="showd = !showd">分享</li> 
      <!-- JiaThis Button BEGIN --> 
      <transition name="slide-fade"> 
      <div class="jiathis_style_32x32 share" v-show="showd"> 
        <a class="jiathis_button_qzone"></a> 
        <a class="jiathis_button_tsina"></a> 
        <a class="jiathis_button_tqq"></a> 
        <a class="jiathis_button_weixin"></a> 
        <a class="jiathis_button_renren"></a> 
      </div> 
      </transition> 
      <!-- JiaThis Button END --> 
      <transition name="slide-fade"> 
      <div class="share sharephone" v-show="showph"> 
        18305452462 
      </div> 
      </transition> 
      <transition name="slide-fade"> 
      <div class="share showmap" v-show="showmap"> 
        <ditu></ditu>---------------------------------自定义模板 
      </div> 
      </transition> 
    </ul> 
    <div class="fuceng" v-if="showmap"></div> 
 </div> 
</template> 
 
<script> 
import ditu from '@/components/home' 
export default { 
 name: 'app', 
 data () { 
  return { 
   search: '', 
   showd: false, 
   showph: false, 
   showmap: false 
  } 
 }, 
 mounted () { 
  this.init() 
 }, 
 methods: { 
  Search () { 
   if (this.search !== '') { 
    this.$router.push({ 
     path: '/list', 
     query: { 
      serInfo: this.search 
     } 
    }) 
   } else { 
    alert('请输入搜索内容') 
   } 
  }, 
  init: function () { 
   let url = 'http://v3.jiathis.com/code/jia.js' 
   let script = document.createElement('script') 
   script.setAttribute('src', url) 
   document.getElementsByTagName('head')[0].appendChild(script) 
  } 
 }, 
 components: { 
  ditu 
 } 
} 
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
微信小程序 开发经验整理
Feb 15 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 #Javascript
Angular.js中angular-ui-router的简单实践
Jul 18 #Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 #jQuery
jquery版轮播图效果和extend扩展
Jul 18 #jQuery
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 #Javascript
深入解析Vue 组件命名那些事
Jul 18 #Javascript
js实现本地图片文件拖拽效果
Jul 18 #Javascript
You might like
优化PHP程序的方法小结
2012/02/23 PHP
PHP中soap的用法实例
2014/10/24 PHP
php pdo操作数据库示例
2017/03/10 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
react路由配置方式详解
2017/08/07 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python创建线程示例
2014/05/06 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python中property函数用法实例分析
2018/06/04 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
python中的列表和元组区别分析
2020/12/30 Python
远程研修随笔感言
2014/02/10 职场文书
单位绩效考核方案
2014/05/11 职场文书
德育标兵事迹材料
2014/08/24 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python
Python中字符串对象语法分享
2022/02/24 Python
Python集合set()使用的方法详解
2022/03/18 Python