Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参
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 ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参的更多相关文章
- vue路由(一个包含重定向、嵌套路由、懒加载的main.js如下)and 路由跳转传参的query和params的异同
import Vue from 'vue'import VueRouter from 'vue-router'import App from './App'Vue.use(VueRouter)cons ...
- vue环境配置脚手架搭建,生命周期,钩子
Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...
- Vue.js的指令、生命周期钩子与数据选项
vue.js官网:https://cn.vuejs.org/v2/guide/components-registration.html 一.常用指令 v-if ... v-else: 作用:控制元素是 ...
- vue 生命周期钩子 路由钩子 动画钩子 执行顺序
进入首页的钩子们 1 路由钩子 路由跳转前beforeEach 2 路由钩子 home组件内部:守卫执行前beforeRouteEnter 3.路由钩子 路由跳转后afterEach 4 生命周期 h ...
- vue使用填坑之生命周期钩子的 this 上下文
每个Vue实例在被创建的时候都需要经过一系列的初始过程,如设置数据监听,编译模版,将实例挂载到DOM并在数据变化的时候更新DOM.在这个过程中,也会运行一些叫生命周期钩子的函数.如created, m ...
- Vue之路由跳转 传参 aixos 和cookie
一.路由跳转 1.1 项目的初始化 vue create m-proj >>>创建vue项目 精简vue项目的 views 视图 About(基本是删除的) Home.(可以 ...
- vue 路由跳转传参
<li v-for="article in articles" @click="getDescribe(article.id)"> getDescr ...
- vue 中 this.$router.push() 路由跳转传参 及 参数接收的方法
传递参数的方法:1.Params 由于动态路由也是传递params的,所以在 this.$router.push() 方法中 path不能和params一起使用,否则params将无效.需要用name ...
- vue路由跳转传参
this.$router.push({ path: '/message/result_notice', query: { id: id } }) // let type = this.$route.n ...
随机推荐
- MySQL创建、修改、删除数据库
创建数据库 CREATE DATABASE [IF NOT EXISTS] t1 CHARACTER SET [=] utf8: 中括号中的代码可有可无:CHARATER如果不写则创建为默认的字符. ...
- kubernetes搭建(可访问外网环境部署)
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11947621.html 一.前 ...
- crontab -e 报错(E518: Unknown option: foldenable)
crontab 默认编辑器为vi,不支持foldenable #crontab -e Error detected while processing /root/.vimrc: line : E518 ...
- 用Python代码写的计算器
1.极限压缩版 import re, functools def cal(formula): while re.search('(?:\d+\.?\d+|\d+)[+\-*/]', formula): ...
- 关于python的中国历年城市天气信息爬取
一.主题式网络爬虫设计方案(15分)1.主题式网络爬虫名称 关于python的中国城市天气网爬取 2.主题式网络爬虫爬取的内容与数据特征分析 爬取中国天气网各个城市每年各个月份的天气数据, 包括最高城 ...
- Python 十大装 X 语法(一)
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并 ...
- SpringBoot与数据层
1.JDBC <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- IMP-00009: abnormal end of export file解决方案
一.概述 最近在测试环境的一个oracle数据库上面,使用exp将表导出没有问题,而将导出的文件使用imp导入时却出现了如下错误. IMP-00009: abnormal end of export ...
- 为什么老外不愿意用MyBatis?
作者:陈龙 www.zhihu.com/question/309662829 Spring 团队的Josh Long自己在Twitter上做了一个调查.1625次投票,样本量不算大,但也能说明问题.和 ...
- Linux 操作系统的权限为什么是1,2,4 而不是 1,2,3?如何用二进制来做权限管理
1.二进制做权限的优点 大家都知道,在Linux操作系统中,x - 可执行权限,w - 可写权限 , r - 可读权限.其权限值分别是1,2,4,但是有没有想过为什么是1,2,4 而不是 1,2,3 ...