### vue
#### vue生命周期
beforeCreated
`实例初始化,数据观察和event/watch事件配置之前被调用`
created
`实例创建后立即调用,数据观测,数据和方法运算,watch/event事件回调`
beforeMount
`挂载之前被调用:相关的render函数首次调用`
mounted
`el被实例替换,并挂载到实例上去之后调用该钩子。mounted不会承诺所有的子组件都一起挂载,如果想要整个视图都渲染完毕,可以用vm.$nextTick替换mounted`
beforeUpdate
`数据更新时调用,适合在更行之前访问现在有的dom比如手动移除已添加的事件监听器`
> 该钩子在服务器渲染期间不会调用,因为只有初次渲染会在服务器端进行
updated
`由于数据更改导致的虚拟dom重新渲染和打补丁,在这之后会调用该钩子。在这个钩子被调用时,组件DOM已经更新,所以你现在可以依赖于DOM操作。`
activated
`keep-alive组件激活时调用`
deactivated
`keep-alive组件停用时调用`
beforeDestroy
`实例销毁之前调用。实例仍然可用`
destroyed
`Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。`
### vue项目大致
### 创建
```vue 
vue init webpack 项目名      //   creat 项目名  新版本
cd 项目名   
npm i   下载关联组件
npm run dev   运行
```
使用
```vue
导入axios插件:
1.新建http.js模块->插件代码
2.导入axios
3.按照文档开发插件  开发插件
import axios from 'axios'
const Http = {}
Http.install = function(Vue) {
  Vue.prototype.$http = axios
}
export default Http
4.main。js引入插件
5.Vue.ues(Http)    、、全局使用axios
```
> 给单元格内容包裹容器template(vue提供的组件)x
```vue
1.通过template的属性slot-scope可以把上层数据传递给层里进行使用
2.slot-scope的值可以随便写 通常命名为 scope
3."scope"会自动去找上一级数据 el-table :data 的值 tableData
4. scope.row 是数据源中的每个元素 这里是对象 (row 不能随便写)
```
eg:
```js
<template slot-scope="scope">
  {{ scope.row.create_time|fmtDate}}
</template>
```
> 页面变化之前判断是否登录
```vue
router.beforeEach((to, from, next) => {  
  to:即将要进入的目标
  from:单前导航正要离开的路由
  next:进行管道的下一个钩子函数
}
```
> 操作dom
`ref` 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 `$refs` 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例
### vue-router
#### 嵌套路由
```vue
const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User,
      children: [
        {
          // 当 /user/:id/profile 匹配成功,
          // UserProfile 会被渲染在 User 的 <router-view> 中
          path: 'profile',
          component: UserProfile
        },
        {
          // 当 /user/:id/posts 匹配成功
          // UserPosts 会被渲染在 User 的 <router-view> 中
          path: 'posts',
          component: UserPosts
        }
      ]
    }
  ]
})
```
### 重定向
```vue
const router = new VueRouter({
  routes: [
    { path: '/a', redirect: '/b' }
  ]
})
```
### 动态路由匹配
一个“路径参数”使用冒号 `:` 标记。当匹配到一个路由时,参数值会被设置到`this.$route.params`
可以通过`this.$router.push(路径)来实现页面跳转
### vuex
> Vuex 是一个专为 Vue.js 应用程序开发的**状态管理模式**。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化
- **state**,驱动应用的数据源;
- **view**,以声明方式将 **state** 映射到视图;
- **actions**,响应在 **view** 上的用户输入导致的状态变化。
> namespaced:true
>
> 前提:在模块中开启命名空间
### Mutation 必须是同步函数
Action 可以包含任意异步操作
Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 `context.commit`
### 插件
> vuex-router-sync
使用插件,使路由配置直接在context中
### 组件通信
`父子通信`
1. 在子组件props:["msg"]
2. 使用组件时 <child-a :msg="父组件data的数据">
3. 在子组件的template {{msg}}
`子传父`
1. 在子组件中 this.$emit(自定义事件名xxx,数据a)
2. 在使用子组件时 child-a @xxx="父组件methods中的方法fnx"
3. 在父组件的methods中fnx(argv){此时 argv就是数据a}
`兄弟传信`
1. A 触发事件 vm.$emit(事件名,数据a)
2. B 绑定事件 vm.$on(事件名,(argv)=>{此时 argv就是数据a})

vue相关知识点及面试的更多相关文章

  1. Vue相关知识点记录

    1.安装 vue不支持ie8以下版本(无法模拟ECMAScript5特性),支持所有兼容ECMAScript5的浏览器. 浏览器安装Vue Devtools, 可以在更友好的界面中审查和调试Vue应用 ...

  2. vue相关知识点

    1.el-date-picker输入的时间范围需要两点 A.禁用键盘输入 :editable=false,否则虽然禁用,但是输入框还能输入 B.指定时间范围::picker-options=" ...

  3. 【记录】vue相关知识点

    let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...

  4. Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令

    自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...

  5. Vue相关问题

    1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的 setter, ...

  6. vue API 知识点(2)---选项总结

    一.选项 / 数据 1.data 当一个组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例,如果 data 仍然是一个纯碎的对象,则所有的实例将被共享引用同一个 ...

  7. 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

  8. 这些HTML、CSS知识点,面试和平时开发都需要 No5-No7

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

  9. 这些HTML、CSS知识点,面试和平时开发都需要 No8-No9

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

随机推荐

  1. 基于Socket访问西门子PLC系列教程(二)

    本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...

  2. 算法学习笔记:最近公共祖先(LCA问题)

    当我们处理树上点与点关系的问题时(例如,最简单的,树上两点的距离),常常需要获知树上两点的最近公共祖先(Lowest Common Ancestor,LCA).如下图所示: 2号点是7号点和9号点的最 ...

  3. Socket 由浅入深,开发一个真正的通信应用

    在说socket之前.我们先了解下相关的网络知识: 端口  在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上, ...

  4. 第一次使用Git Bash Here 将本地代码上传到码云

    当我们安装成功git工具时候,初次使用Git时,需要Git进行配置. 1.点击桌面上的这个图标,打开Git Bash:如图所示 2.配置自己的用户名和邮箱 git config --global us ...

  5. Selenium数据驱动测试模型和实例

    模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同数据的用例时,模块驱动的方式就不很适合了. 数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变. 装载数据的方式可以是列表. ...

  6. Django context must be a dict ranther than Context

    1.1 错误描述 TypeError at /time/ context must be a dict rather than Context. Request Method: GET Request ...

  7. 设置Anaconda启动jupyter的默认目录

    要解决的问题:安装好Anaconda后打开jupyter总是会自动跳到c:下的用户目录,通过以下方法可以修改其默认打开的目录 吐槽:竟然没有设置默认打开目录的选项,只能通过修改配置文件完成,让人不爽. ...

  8. springMVC入门(一)------springMVC基本概念与安装

    springMVC简介 springMVC是一个基于MVC的web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. springMVC安装 本例中使用 ...

  9. centos7 + nginx+django 运行环境

    .easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/pypi ...

  10. javascript 数据结构与算法---二叉数

    二叉树,首先了解一些关于二叉数的概念(来自百度百科) 1. 二叉树(Binary tree)是树形结构的一个重要类型 2. 定义: 二叉树(binary tree)是指树中节点的度不大于2的有序树,它 ...