Vue(router,导航守卫,slot插槽)

先说一下学习vue的过程
第一遍看全局,知道有哪些东西,每一部分都是干什么用的,哪些重要,哪些不重要。

第二遍重原理,从最核心的原理出发,一步一步尝试以最短的路径走通整个流程,完成核心任务。

第三遍补周边,把之前做的方案拿出来,看看哪些地方可以优化,哪些地方能做得更好。

第三步我当时自己用vue做一个自己的资讯网站,数据传递推翻了两次,都是做到一半发现太冗余,数据传递太麻烦直接重做,第三次才定下来。然而现在我又觉得要推翻重做,虽然网站数据传递基本实现了,但还是有很多问题,所以准备再做一遍,就当是加深理解了。

Vue 
1,npm install --save vue-resource
2.<router-link to="/helloworld">helloworld</router-link>
3.使用props绑定静态数据

【1】这种方法用于传递字符串,且值是写在父组件自定义元素上的。

【2】下面示例中的写法,不能传递父组件data属性中的值

【3】会覆盖模板的data属性中,同名的值。

【4】可以使用required选项来声明这个参数是否必须传入。
当未传入参数时( Missing required prop:)

4 vue获得数组索引
v-for="(user,index) in users"   {{ index }}

5.Vue路由器

<!-- named route -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

<!-- with query, resulting in `/register?plan=private` -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>

5vue命名路由

const router = new VueRouter({
  routes: [
    {
      path: '/user/:userId',
      name: 'user',
      component: User
    }
  ]
})
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>//
                               name属性对应routes的对象的name属性
router.push({ name: 'user', params: { userId: 123 }})//
在这两种情况下,路由器都将导航到路径/user/123。

6vue跳到指定路由
this.$router.push({ name: 'RegandLog', params: { id: 'admincenter' }});

7vue路由钩子函数(//router.vuejs.org/guide/advanced/navigation-guards.html#in-component-guards)
在全局注册
const router = new VueRouter({ ... })

router.beforeEach((to, from, next) => {
  // ...
})

在路由(route.js)注册
const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      beforeEnter: (to, from, next) => {
        // ...
      }
    }
  ]
})

在组件中注册,可以使用以下选项直接在路径组件(传递给路由器配置的组件)中定义路径导航保护:
beforeRouteEnter
beforeRouteUpdate
beforeRouteLeave
beforeRouteEnter (to, from, next) {
    // called before the route that renders this component is confirmed.
    // does NOT have access to `this` component instance,
    // because it has not been created yet when this guard is called!
  },

8.slot
子件
<template>
  <div class="hell"
      <div class="header"><slot name=“a”>默认值</slot></div>
      <div class="content"><slot name="b">默认值</slot></div>
  </div>
</template>
父件
<template>
    <hell>
         <div slot="a">sdgdhj</div>
          <div slot="b">werwr</div>
     </hell>
</template>

猜你喜欢

转载自blog.csdn.net/liuanpingfirst/article/details/81275168