Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参

目录

  • Vue组件文件微微细剖
  • Vue组件生命周期钩子
  • Vue路由
    • 1.touter下的index.js
    • 2.路由重定向
    • 3.路由传参数
    • 补充:全局样式导入
  • 路由跳转
    • 1. router-view标签
    • 2. router-link标签
    • 3.逻辑跳转
      • this.$router 控制路由跳转
      • this.$route 控制路由数据

Vue组件文件微微细剖

组件在view

文件中创建 如果需要用到其他小组件可以 在 component文件中创建并导入

view文件下:

<template>
    <div class="home">
        <Nav /> <!--从component中导入的小组件-->
        <h1>主页</h1>
    </div>
</template>
<!--template标签负责组件的html结构:有且只有一个根标签-->

export default

// script标签负责组件的js逻辑:逻辑固定导出 export default {组件内容}(外界才可以导入)
    import Nav from '../components/Nav' // 导入 组件 并且注册

    export default {
        data(){     // 组件化
            return {
                back_data: ''
            }
        },
        methods: {},
        components: {
            Nav,  // 注册
        },}

scoped

<!--style标签负责组件的css样式:scoped保证样式的组件化 - 样式只在该组件内部起作用-->
<style scoped>
    pass
</style>

Vue组件生命周期钩子

* 1)一个组件从创建到销毁的众多时间节点回调的方法
* 2)这些方法都是vue组件实例的成员
* 3)生命周期钩子的作用就是满足在不同时间节点需要完成的事

例子:

// 直接写在export default 里面 

beforeCreate() {
    console.log('Home组件要创建了');
    console.log(this.back_data);
},
created() { // 重要方法:在该钩子中完成后台数据的请求 *****
    console.log('Home组件创建成功了');
    // 前后台开发时,是从后台请求数据
    console.log(this.back_data);
},
beforeMount() {
    console.log('Home组件准备加载')
},
mounted() {  // 特别耗时的数据请求,可以延后到组件初步加载成功后,再慢慢请求
    console.log('Home组件加载完成')
},
destroyed() {
    console.log('Home组件销毁成功了')
}

Vue路由

1.touter下的index.js

const routes = [
  {
    path: '/',
    name: 'home',
    component: Home
  },
  {
    path: '/about',
    name: 'about',
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  }
]

例如我们想要添加一条路由指向一个子组件 那么我们就可以 1.导入 2.写入 案例:

import Course from '../views/Course'  // 导入组件
const routes = [
    path:'/course',
    name:'course',
    component:Course // 路由/course指向Course
]

2.路由重定向

    {
        path: '/home',
        redirect: '/',  // 路由的重定向
    },

3.路由传参数

    {
        // 第一种路由传参
        path: '/course/:pk/detail',
        name: 'course-detail',
        component: CourseDetail
    }
// 第二种路由传参 拼接参数
<router-link :to="`/course/detail?pk=${course.id}`"> </router-link> 

补充:全局样式导入

require

 // 前台逻辑中加载静态资源采用require!!!!!!!!!!

// 补充:导入的注意事项
// 配置全局样式:@就代表src文件夹的绝对路径,官方提倡require加载静态文件
// import '@/assets/css/global.css'
require('@/assets/css/global.css');
img: require('@/assets/img/002.jpg'),
// 同时 只要是导入都适用@为绝对路径

路由跳转

1. router-view标签

<!--App.vue中 适用router-view实现了不同页面的渲染跳转-->
<template>
    <div id="app">
        <!--页面组件占位符-->
        <router-view></router-view>
    </div>
</template>

2. router-link标签

<!--可以用 <router-link to="/user">用户页</router-link>完成标签跳转-->
<router-link to="/">主页</router-link>
<!--或者使用name来指定 router中写的name-->
<router-link :to="{name: 'course'}">课程页</router-link>

3.逻辑跳转

this.$router 控制路由跳转

this.$router.push('/');  // 往下再跳转一页
this.$router.push({name:"router中起的name"}); // 解析router中的name并跳转

携带参数:

this.$router.push({name: '路由名', query: {xxx:'xxx'}}); // 添加 ?xxx=xxx参数
this.$router.push({name: '路由名', params: {xxx:'xxx'}}); // 添加 分组传参

this.$router.go(2);  // go是历史记录前进后退,正为前进,负为后退,数字为步数

this.$route 控制路由数据

this.$route.path;  // 获取当前路径

this.$route.query;  // 获取?xxx=xxx后携带的参数
/course/detail?pk=2

this.$route.params;  // 获取分组后的参数 
/course/:pk/detail

原文地址:https://www.cnblogs.com/lddraon1/p/12070673.html

时间: 2024-07-28 21:35:00

Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参的相关文章

Vue之路由跳转传参,插件安装与配置

路由跳转 this.$router.push('/course'); this.$router.push({name:course}); this.$router.go(-1); //后退一页 this.$router.go(1): // 前进一页 <router-link to = "/course">课程页</router-link> <router-link :to="{name:'course'}"> 课程页 </r

vue 路由跳转传参

<li v-for="article in articles" @click="getDescribe(article.id)"> getDescribe(id) { // 直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/describe/${id}`, }) this.$route.params.id 父组件中:通过路由属性中的name来确定匹配的路由,通过params来传递参数. this

Angular25 组件的生命周期钩子

1 生命周期钩子概述 组件共有9个生命周期钩子 1.1 生命周期的执行顺序 技巧01:测试时父组件传递对子组件的输入属性进行初始化操作 import { Component, Input, SimpleChanges, OnInit, OnChanges, DoCheck, AfterContentChecked, AfterViewInit, AfterContentInit, AfterViewChecked, OnDestroy } from '@angular/core'; let lo

简单记录一下vue生命周期及 父组件和子组件生命周期钩子执行顺序

首先,vue生命周期可以用下图来简单理解 当然这也是官方文档的图片,详细的vue周期详解请参考这里 然而当同时存在父子组件的时候生命周期钩子是如何执行的呢? 请看下文: 加载渲染过程父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted 子组件更新过程父beforeUpdate->子beforeUpdate->子up

Vue 组件生命周期钩子

Vue 组件生命周期钩子 # 1)一个组件从创建到销毁的整个过程,就称之为组件的生命周期 # 2)在组件创建到销毁的过程中,会出现众多关键的时间节点, 如: 组件要创建了.组件创建完毕了.组件数据渲染完毕了.组件要被销毁了.组件销毁完毕了 等等时间节点, 每一个时间节点,vue都为其提供了一个回调函数(在该组件到达该时间节点时,就会触发对应的回调函数,在函数中就可以完成该节点需要完成的业务逻辑) # 3)生命周期钩子函数就是 vue实例的成员 beforeCreate 组件创建了,但数据和方法还

第九篇:Vue组件的生命周期钩子

组件的生命周期钩子 一.组件的生命周期:一个组件从创建到销毁的整个过程 二.生命周期钩子:在一个组件生命周期中,会有很多特殊的时间节点,且往往会在特定的时间节点完成一定的逻辑,特殊的事件节点可以绑定钩子 注:钩子 - 提前为某个事件绑定方法,当满足这个事件激活条件时,方法就会被调用 | 满足特点条件被回调的绑定方法就称之为钩子 <template> <div class="goods"> <Nav /> </div> </templ

Vue 实例中的生命周期钩子

Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑. Vue 实例 在文档中经常会使用 vm 这个变量名表示 Vue 实例,在实例化 Vue 时,需要传入一个选项对象,它可以包含数据(data).模板(template).挂载元素(el).方法(methods).生命周期钩子(lifecyclehook)等选项. Vue 实例化的选项 需要注意的

Vue(1)数据绑定、生命周期钩子、文本插值和表达式

初识Vue 1.Vue是一个轻巧.高性能.可组件化的MVVM库,是一个构建数据驱动的Web界面的库. 2.Vue是一套构建用户界面的渐进式框架,与其它框架不同的是,Vue采用自底向上增量开发的设计.Vue的核心只关注图层. 3.Vue可驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用. Vue的特性 1.轻量级的框架 2.双向数据绑定 3.指令 4.插件化 MVVM模式 Model view viewmodel,把MVC中的Controller和MVP中的presenter改成vie

Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比较高频的考点,那么该如何回答这类问题,让人有眼前一亮的感觉呢... 前端进阶积累.公众号.GitHub Vue-Router导航守卫: 有的时候,我们需要通过路由来进行一些操作,比如最常见的登录权限验证,当用户满足条件时,才让其进入导航,否则就取消跳转,并跳到登录页面让其登录. 为此我们有很多种方法