美文网首页
Vue-08-xiaoming

Vue-08-xiaoming

作者: QAQ小明 | 来源:发表于2018-09-24 15:41 被阅读0次
2018-09-24

说到Vue.js常用插件,今天我们就一起来学习他的核心插件路由vue-router)。
①Vue.js 路由允许我们通过不同的 URL 访问不同的内容
②通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA);(通俗来说就是:创建单页面SPA)。

firstly:安装

①直接下载/CDN:https://unpkg.com/vue-router/dist/vue-router.js
②NPM:打开Git Bash Here,输入指令npm install vue-router.。

secondly:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
 <a></a>
  <div id='app'>
     <!--1.创建一个链接-->
     <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
     <router-link to='/home'>首页</router-link>
     <router-link to='/user'>用户页</router-link> 
    <!-- 路由出口 -->
    <!-- 路由匹配到的组件将渲染在这里 -->
    <!-- 盛放链接对应的内容-->
      <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.创建组件
       var Home={
           template:`
             <h1>这是首页</h1>
           `
       }
       
       var User={
           template:`
                <h1>这是用户页</h1>
            `
       }
       
       //3.配置路由
       const  routes=[
           {path:'/home',component:Home},
           {path:'/user',component:User}
       ]
       
       //4.创建路由实例
      //创建 router 实例,然后传 `routes` 配置
       const router=new VueRouter({
           //也可以简写为routers
           routes:routes
       })
       
       //5.路由实例挂载到vue实例上
       // 记得要通过 router 配置参数注入路由,
       // 从而让整个应用都有路由功能
       new Vue({
           el:'#app',
           router:router
       })
    </script>
</body>
</html>
之后,我们一起来看一下其中的细节:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
/* 两种方式都可以改变链接字体的颜色*/
/*
        .router-link-active{
            color:red;
        } 
*/
        .active{
            color:red;
        }
    </style>
</head>
<body>
 <a></a>
  <div id='app'>
     <!--1.-->
     <router-link to='/home'>首页</router-link>
     <router-link to='/user'>用户页</router-link> 
     
    <!-- 盛放链接对应的内容-->
      <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.创建组件
       var Home={
           template:`
             <h1>这是首页</h1>
           `
       }
       
       var User={
           template:`
                <h1>这是用户页</h1>
            `
       }
       
       //3.配置路由
       const  routes=[
       //添加一个新的路径,也就是第一个,当页面加载完成时直接显示
           {path:'/',component:Home},
           {path:'/home',component:Home},
           {path:'/user',component:User}
       ]
       
       //4.创建路由实例
       const router=new VueRouter({
           routes:routes,
           linkActiveClass:'active'
       })
       
       //5.路由实例挂载到vue实例上
       new Vue({
           el:'#app',
           router:router
       })
    </script>
</body>
</html>
效果图:
路由.png
接下来的就是路由的嵌套:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  <div id='app'>
   <!--1.-->
   <router-link to='/index'>首页</router-link>
   <router-link to='/user'>用户页</router-link>
   <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.创建组件
       var  Index={
           template:`
             <h1>这是首页</h1>
           `
       }
       var User={
           template:`
           <div>
             <h1>这是用户页</h1>
             <ul>
               <li>
                  <router-link to='/user/regist'>注册</router-link>
               </li> 
                <li>
                  <router-link to='/user/login'>登录</router-link>
               </li>
            </ul>
            <router-view></router-view>
           </div>
         `
       }
       
       
       var Regist={
           template:`
             <h3>这是注册页</h3>
          `
       }
       
        var Login={
           template:`
             <h3>这是登录页</h3>
          `
       }
       
       //3.配置路由
       const routes=[
           {path:'/',component:Index},
           {path:'/index',component:Index},
           {
               path:'/user',
               component:User,
               children:[
                   {path:'regist',component:Regist},
                   {path:'login',component:Login}
               ]
           }
       ]
       
       //4.创建路由实例
       const router=new VueRouter({
           routes:routes
       })
       
       //5.把路由实例挂载到vue实例上
      new Vue({
          el:'#app',
          router:router//注册路由
      })
      </script>
</body>
</html>

效果图:
路由02.png 路由03.png 路由04.png

QAQ:

①v-html

v-html='',可以解析标签

更新元素的innerHTML 。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译 。如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。

<div v-html="html"></div>

②v-text

v-text='',可以输出,但不可以解析标签

更新元素的textContent。如果要更新部分的 textContent ,需要使用{{ Mustache }}插值。

<span v-text="msg"></span>
<span>{{msg}}</span>

③v-once

只绑定一次(直接写,不需要表达式)==>

只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能

④v-pre

原样输出(直接写,不需要表达式)

跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。

⑤v-cloak

用属性选择器:
css:[v-cloak]{
display:none;
}
html:<div v-cloak>
{{ message }}
</div>

QAQ:

var,let,const的异同==>

1.var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问
2.let定义的变量,只能在块作用域里访问不能跨块访问,也不能跨函数访问
3.const用来定义常量使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改

路由今天就学到这里,我们下期再见QAQ~

·

相关文章

  • Vue-08-xiaoming

    2018-09-24 说到Vue.js常用插件,今天我们就一起来学习他的核心插件路由(vue-router)。①V...

网友评论

      本文标题:Vue-08-xiaoming

      本文链接:https://www.haomeiwen.com/subject/qwocoftx.html