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

这两天学习了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>

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

(0)

相关推荐

  • vue2.0嵌套路由实现豆瓣电影分页功能(附demo)

    前言 最近练习Vue,看到官方文档中的嵌套路由,不做不知道,实在是太坑了,网上资料demo少之又少,然后自己就做了一个demo,用了vue2.0嵌套路由实现豆瓣电影分页功能,供大家学习学习,写得不好望见谅. demo截图: Demo简单介绍 主路由:Top250(charts),正在热映(hot),即将上映(ing),新片榜(newmovie) const router = new VueRouter({ routes: [ { path: '/', //设置默认路由为Top250 compon

  • 详解vue2路由vue-router配置(懒加载)

    vue路由配置以及按需加载模块配置 1.首先在component文件目录下写俩组件: First.vue: <template> <div>我是第一个页面</div> </template> <script> export default { name: 'first', data () { return { msg: 'Welcome to Your Vue.js App' } } } </script> <!-- Add &

  • 在vue-cli脚手架中配置一个vue-router前端路由

    前言 这篇文章给大家讲解的是在vue-cli脚手架中如何配置vue-router前端路由的相关内容,分享出来供打击参考学习,下面来一起看看详细的介绍: 首先你需要一个main.js文件 //然后引入vue-router import VueRouter from 'vue-router'; //使用路由 Vue.use(VueRouter); //当然如果需要有组件进来的时候也是需要引入的 import Home from '../components/Home.vue'; import New

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

    这两天学习了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' (----引入路由

  • vue2.0 路由不显示router-view的解决方法

    今天学习vue2.0 的 router-view , 爆出的错误不计其数,不知道哪位大神写的router-view,配置的参数竟然不是router,而是routes =_=|| 这是花了一上午整出来的main.js,还有网上的同道们的提醒: import Vue from 'vue'; import VueRouter from 'vue-router'; import App from './App'; import goods from './components/goods/goods';

  • vue2.0路由切换后页面滚动位置不变BUG的解决方法

    最近项目中遇到这样一个问题,vue切换路由,页面到顶端的滚动距离仍会保持不变. <a href="javascript:;" rel="external nofollow" class="btn btn01" @click="useRightNow">立即试用</a> <router-link class="db" to="/user">个人中心<

  • vue2.0 路由模式mode="history"的作用

    特别提醒:开启mode="history"模式,需要服务端的支持,因为出现"刷新页面报错404"的问题: 大家都知道,路由地址都是以"#"形式展示,但是有些时候,我们又希望路由地址中不出现"#",那怎么办呢? vue给我们提供了一个属性mode="history";代码如下 const router = new Router({ mode: 'history', // 去掉路由地址的# routes: [

  • 解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题

    在做项目的时候,遇到需要做路由跳转,但当用户输入错误url地址,或是其它非法url路由地址,我们或许会想到跳转至404页面.不管你有没有写一个404页面,当出现未匹配路由都需重新指定页面跳转.可能大家首先想到会是路由重定向,redirect来解决这个问题.但实际上通过redirect是没办法更好解决这个问题的. 看代码红色部分 import Vue from 'vue' import Router from 'vue-router' import Hello from '@/components

  • 详解关于Vue2.0路由开启keep-alive时需要注意的地方

    Vue2.0 做应用必有的需求就是页面数据需要做缓存,不用每次进入页面都要把数据重新请求一遍,每次页面切换都有段等待数据相应时间,这个用户体验可想有多么蛋疼,所以页面缓存是必要的,啥时候需要更新页面数据呢?可以监听状态变化,或者是手动下拉刷新重新请求数据,酱紫,我想用户体验会做的更好. keep-alive的作用以及好处 在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件

  • 100行代码理解和分析vue2.0响应式架构

    分享前啰嗦 我之前介绍过vue1.0如何实现observer和watcher.本想继续写下去,可是vue2.0横空出世..所以直接看vue2.0吧.这篇文章在公司分享过,终于写出来了.我们采用用最精简的代码,还原vue2.0响应式架构实现. 以前写的那篇 vue 源码分析之如何实现 observer 和 watcher可以作为本次分享的参考. 不过不看也没关系,但是最好了解下Object.defineProperty 本文分享什么 理解vue2.0的响应式架构,就是下面这张图 顺带介绍他比rea

  • vue2.0 获取从http接口中获取数据,组件开发,路由配置方式

    vue 2.0 从接口中获取数据 <template> <div id="admins"> <h1>I am a title.</h1> <a> written by {{ author }} </a> <div v-for="admin in users"> {{admin.name}}<br>{{admin.password}} </div> </d

  • Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)

    demo需求分析: 图中菜单区域为header公用组件,点击相应的菜单选项跳转到对应的路由,在菜单下区域加载相应组件的内容. 以下两图分别为点击"我的电站"."个人中心"的效果 demo结构介绍: 登录成功后,跳转到index页面,并默认显示index/UserStation(我的电站),index为一个组件,其他各个子菜单为一个组件,公共header为一个组件. 路由配置代码: header组件关键代码: 基于Element-ui(只需要留意红框部分):Eleme

随机推荐