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

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

  1. vue路由(一个包含重定向、嵌套路由、懒加载的main.js如下)and 路由跳转传参的query和params的异同

    import Vue from 'vue'import VueRouter from 'vue-router'import App from './App'Vue.use(VueRouter)cons ...

  2. vue环境配置脚手架搭建,生命周期,钩子

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

  3. Vue.js的指令、生命周期钩子与数据选项

    vue.js官网:https://cn.vuejs.org/v2/guide/components-registration.html 一.常用指令 v-if ... v-else: 作用:控制元素是 ...

  4. vue 生命周期钩子 路由钩子 动画钩子 执行顺序

    进入首页的钩子们 1 路由钩子 路由跳转前beforeEach 2 路由钩子 home组件内部:守卫执行前beforeRouteEnter 3.路由钩子 路由跳转后afterEach 4 生命周期 h ...

  5. vue使用填坑之生命周期钩子的 this 上下文

    每个Vue实例在被创建的时候都需要经过一系列的初始过程,如设置数据监听,编译模版,将实例挂载到DOM并在数据变化的时候更新DOM.在这个过程中,也会运行一些叫生命周期钩子的函数.如created, m ...

  6. Vue之路由跳转 传参 aixos 和cookie

    一.路由跳转 1.1 项目的初始化 vue create m-proj   >>>创建vue项目 精简vue项目的 views 视图   About(基本是删除的) Home.(可以 ...

  7. vue 路由跳转传参

    <li v-for="article in articles" @click="getDescribe(article.id)"> getDescr ...

  8. vue 中 this.$router.push() 路由跳转传参 及 参数接收的方法

    传递参数的方法:1.Params 由于动态路由也是传递params的,所以在 this.$router.push() 方法中 path不能和params一起使用,否则params将无效.需要用name ...

  9. vue路由跳转传参

    this.$router.push({ path: '/message/result_notice', query: { id: id } }) // let type = this.$route.n ...

随机推荐

  1. MySQL创建、修改、删除数据库

    创建数据库 CREATE DATABASE [IF NOT EXISTS] t1 CHARACTER SET [=] utf8: 中括号中的代码可有可无:CHARATER如果不写则创建为默认的字符. ...

  2. kubernetes搭建(可访问外网环境部署)

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11947621.html 一.前 ...

  3. crontab -e 报错(E518: Unknown option: foldenable)

    crontab 默认编辑器为vi,不支持foldenable #crontab -e Error detected while processing /root/.vimrc: line : E518 ...

  4. 用Python代码写的计算器

    1.极限压缩版 import re, functools def cal(formula): while re.search('(?:\d+\.?\d+|\d+)[+\-*/]', formula): ...

  5. 关于python的中国历年城市天气信息爬取

    一.主题式网络爬虫设计方案(15分)1.主题式网络爬虫名称 关于python的中国城市天气网爬取 2.主题式网络爬虫爬取的内容与数据特征分析 爬取中国天气网各个城市每年各个月份的天气数据, 包括最高城 ...

  6. Python 十大装 X 语法(一)

    Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并 ...

  7. SpringBoot与数据层

    1.JDBC <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. IMP-00009: abnormal end of export file解决方案

    一.概述 最近在测试环境的一个oracle数据库上面,使用exp将表导出没有问题,而将导出的文件使用imp导入时却出现了如下错误. IMP-00009: abnormal end of export ...

  9. 为什么老外不愿意用MyBatis?

    作者:陈龙 www.zhihu.com/question/309662829 Spring 团队的Josh Long自己在Twitter上做了一个调查.1625次投票,样本量不算大,但也能说明问题.和 ...

  10. Linux 操作系统的权限为什么是1,2,4 而不是 1,2,3?如何用二进制来做权限管理

    1.二进制做权限的优点 大家都知道,在Linux操作系统中,x - 可执行权限,w - 可写权限 , r - 可读权限.其权限值分别是1,2,4,但是有没有想过为什么是1,2,4 而不是 1,2,3 ...