props的其它内容

  1. props的作用就是用于在子组件中接收传入的数据
  2. props的使用方式
  3. 1.数组
  4. props:['name']
  5. 2.对象,指定传入变量的类型
  6. props:{name:Number}
  7. 3.对象,传入变量有类型、默认值和必填
  8. props: {
  9. name: {
  10. type: String, # 类型
  11. required: true, # 必填
  12. default: '' # 默认值
  13. }
  14. }

混入 mixin

  1. mixin的作用就是将多个组件共用的配置提取成一个混入对象,其实就是将多个组件都能用到的配置提出来放到一个文件中,并导出,谁要用就导入
  2. 使用步骤
  3. 1.定义混入对象
  4. 新建mixin包,在mixin包下新建index.js
  5. 2.index.js中写组建中会用到的配置项,如data,methods
  6. export const zyg = {
  7. methods: {
  8. },
  9. mounted() {
  10. },
  11. data() {
  12. return {
  13. }
  14. }
  15. }
  16. 3.局部使用(只在当前组件中使用)
  17. import {zyg} from '@/mixin'
  18. mixins: [zyg] # 配置项
  19. 4.全局使用(所有组件都能用)
  20. main.js
  21. import {zyg} from '@/mixin'
  22. Vue.mixin(zyg)
  23. 5.在组件中直接使用即可

插件

  1. 插件主要就是用于增强Vue
  2. 他其实就是一个包含install方法的一个对象,install的第一个参数时vue,第二个以后的参数是使用插件的时候传递的数据
  3. 使用方法
  4. 1.新建包plugins,在包中新建index.js
  5. import Vue from 'vue';
  6. import axios from 'axios';
  7. export default {
  8. install(vue) {
  9. # 1.自定义指令
  10. # 2.定义全局变量,之后所有组件都能用,借助于Vue.prototype往里放,以后只需要this.$ajax,就是axios对象
  11. # 3.使用全局混入
  12. # 4.自定义全局组件
  13. }
  14. }
  15. 2.main.js中配置
  16. import plugin from '@/plugins'
  17. Vue.use(plugin)

elementui的使用

  1. 1.安装
  2. cnpm i element-ui -S
  3. 2.配置完整引入,在main.js中写以下内容
  4. import ElementUI from 'element-ui';
  5. import 'element-ui/lib/theme-chalk/index.css';
  6. Vue.use(ElementUI)
  7. 以后就可以在组件中直接使用elementui提供的全局组件
  8. 3.使用组件
  9. elementui官网复制粘贴

vuex

  1. vuex就是在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信
  2. 使用步骤
  3. 1.安装
  4. 新建store包,新建index.js
  5. 2.index.js中写
  6. export default new Vuex.Store({
  7. state: {
  8. # 放数据的
  9. },
  10. mutations: {
  11. # 放一个方法,正常是让actions中的方法来调用
  12. # 组件也可以直接调用
  13. },
  14. actions: {
  15. # 放方法,正常组件调用
  16. }
  17. })
  18. 3.组件中
  19. 显示state中的变量
  20. html:
  21. {{$store.state.变量名}}
  22. js:
  23. this.$store,state.变量名
  24. 4.修改state中变量的值
  25. 正常步骤:
  26. 1.组件中js
  27. this.$store.dispatch('actions中的方法', 参数)
  28. 2.actions中的方法调用
  29. context.commit('mutations', 参数)
  30. actions: {
  31. add(context, value) { # context为固定参数,value为接收的参数
  32. context.commit('aaa', value) # aaa为mutations中的方法
  33. }
  34. }
  35. 3.mutations中修改state的值
  36. mutations: {
  37. aaa(state, value) { # state 是Store中的state
  38. }
  39. }
  40. 非正常步骤:在没有网络请求或其它业务逻辑时使用
  41. 1.跳过actions
  42. this.$store.commit()
  43. 2.直接改值
  44. this.$store.state.变量名
  45. vuex在执行时actions可以与后端交互
  46. vuex可以用于多组件数据共享

vue Router

  1. 1.基本使用
  2. 1.创建项目时就已经创建好了直接使用即可
  3. 2.配置路由跳转
  4. const routers = [
  5. {
  6. path:'/',
  7. name: 'index',
  8. component: Indedx # 已经提前导入了import Index from "@/views/IndexView";
  9. },
  10. {
  11. path: '/home',
  12. name: 'home',
  13. component: () => import('@/views/HomeView') # 没有提前导入
  14. }
  15. ]
  16. 2.点击跳转路由的两种方式
  17. 1.js控制
  18. this.$router.push('路径')
  19. 2.标签控制
  20. <router-link to="/路由">
  21. <button>点击跳转页面</button>
  22. </router-link>
  23. 3.路由跳转携带数据的两种方式
  24. 1.在路径中使用?携带
  25. /index/?pk=1
  26. 获取pk: this.$route.query.pk
  27. 2.路径中分割
  28. /index/1/
  29. 使用这种方式routerindex文件中对应的路径要改
  30. {
  31. path: '/index/:id',
  32. name: 'index',
  33. component: Index
  34. }
  35. 获取id: this.$route.params.id
  36. 4.区分this.$routethis.$router
  37. this.$route # 是当前路由对象,内部有传入的参数
  38. this.$router # mew VueRouter对象,可以实现路由的跳转,router文件中的index.js文件中
  39. 5.两种跳转方式
  40. 1.使用对象
  41. this.$router.push({
  42. name: 'index',
  43. params: {
  44. id: 18
  45. }
  46. })
  47. 2.标签跳转
  48. <router-link :to="{name:'login', query: {name: 'zyg'}, params: {id: 18}}">
  49. <button>点击跳转</button>
  50. </router-link>
  51. 6.路由守卫
  52. 全局守卫
  53. 前置路由守卫,在进路由前执行
  54. 后置路由守卫,路由跳转走执行
  55. 用法:
  56. router文件的index.js
  57. router.beforeEach((to, from, next) => { # to是去哪个路由,from是从哪个路由来,next加括号执行
  58. if (to.name == 'login') {
  59. next() # 真正跳转到要去的路径
  60. } else {
  61. var res = localStorage.getItem('userinfo')
  62. if (res) {
  63. next()
  64. }else {
  65. alert('')
  66. this.$router.push({name: 'login', params: {id: 99}})
  67. }
  68. }
  69. })

localStorage系列

  1. localStorage系列主要是用于浏览器存储数据,只是存储数据的方式不同
  2. localStorage
  3. 永久存储,除非清空数据或手动删除、代码删除
  4. localStorage.setItem('userinfo', JSON.stringify(this.userInfo)) # 存数据
  5. localStorage.getItem('userinfo') # 取数据
  6. localStorage.clear() # 清空全部数据
  7. localStorage.removeItem('userinfo') # 清空userinfo的数据
  8. sessionStorage
  9. 临时存储,清理需要关闭浏览器或手动删除、代码删除
  10. sessionStorage.setItem('userinfo', JSON.stringify(this.userInfo)) # 存数据
  11. sessionStorage.getItem('userinfo') # 取数据
  12. sessionStorage.clear() # 清空全部
  13. sessionStorage.removeItem('userinfo') # 清空userinfo的数据
  14. cookie
  15. 有过期时间,到期自动清理,而且需要借助第三方模块 vue-cookie
  16. cookies.set('userinfo', JSON.stringify(this.userInfo)) # 存数据
  17. cookies.get('userinfo') # 取数据
  18. cookies.delete('userinfo') # 删除数据

vue 高级部分的更多相关文章

  1. 【Vue高级知识】细谈Vue 中三要素(响应式+模板+render函数)

    [Vue高级知识]细谈Vue 中三要素(响应式+模板+render函数):https://blog.csdn.net/m0_37981569/article/details/93304809

  2. 你应该知道的Vue高级特性

    本文使用的Vue版本:2.6.10 Vue为我们提供了很多高级特性,学习和掌握它们有助于提高你的代码水平. 一.watch进阶 从我们刚开始学习Vue的时候,对于侦听属性,都是简单地如下面一般使用: ...

  3. vue高级组件之provide / inject

    转载:https://blog.csdn.net/Garrettzxd/article/details/81407199 在vue中不同组件通信方式如下 1.父子组件,通过prop 2.非父子组件,通 ...

  4. vue高级路由

    1.html <script src="https://unpkg.com/vue/dist/vue.js"></script><script src ...

  5. vue高级

    1.nrm nrm提供了一些最常用的npm包镜像地址,可以快速切换服务器地址下载资源.它只是提供了地址,并不是装包工具.如果没有安装npm,需要安装node,然后直接安装即可.node下载链接:htt ...

  6. vue 高级属性父组件provide向子组件发送数据,子组件通过inject接收数据

    以前父组件向子组件中传值是通过props传值,子组件不能更改父组件中的值,但是可以通过从父组件中获取的值定义给自己的data值,这里父组件可以通过provide向子组件传递自己组件中的data值,子组 ...

  7. vue组件通信的几种方式

    最近用vue开发项目,记录一下vue组件间通信几种方式 第一种,父子组件通信 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child ...

  8. vue学习七之Axios

    JQuery时代,我们使用ajax向后台提交数据请求,Vue时代,Axios提供了前端对后台数据请求的各种方式. 什么是Axios Axios是基于Promise的Http客户端,可以在浏览器和nod ...

  9. 前后端vue和django配置

    django pip源更换 虚拟环境配置 目录和日志配置 数据库配置 用户模块自定义 异常,响应配置 xadmin vue vue基础配置 vue高级配置 vue this问题和样式配置

  10. 前端面试题整理——VUE相关题目与回答

    1.v-if与v-show的区别? v-if的原理是根据判断条件来动态的进行增删DOM元素, v-show是根据判断条件来动态的进行显示和隐藏元素,频繁的进行增删DOM操作会影响页面加载速度和性能所以 ...

随机推荐

  1. c++中内联函数和宏函数的区别

    一. 区别: 是不是函数: 宏定义不是函数,但是使用起来像函数.预处理器用复制宏代码的方式代替函数的调用,省去了函数压栈退栈过程,提高了效率: 内联函数本质上是一个函数,内联函数一般用于函数体的代码比 ...

  2. nginx 日志分析之 access.log 格式详解

    说明:access.log 的格式是可以自己自定义,输出的信息格式在nginx.conf中设置 一般默认配置如下: http { ... log_format main '$remote_addr - ...

  3. js中的this的指向问题

    this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象 this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调 ...

  4. navicat图形工具和pymysql模块的使用

    一 Navicat 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库 官网下载:http ...

  5. yaml文件读取转化为类

    首先你要有一个文件读取的方法,写一个根据传入路径 + 类来自动返回对应类的方法. /** * 根据传入的path,加载配置文件内容到对应class中 */ public static <T> ...

  6. xd p4 WEB源码拓展

    WEB 源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中 WEB 源码有很多技术需要简明分析. 知识点 关于 WEB 源码目录结构 后台目录.模板目录.数据库目录 ...

  7. HiveServer2启动报TezConfiguration类NoClassDefFoundError错误

    错误信息如下: 2021-01-03 20:11:26,355 WARN [main] server.HiveServer2: Error starting HiveServer2 on attemp ...

  8. outlook初用

    以前一直用 Foxmail 收发邮件,由于公司用到 sharepoint 可以跟 outlook 绑定,试了下 outlook. 第一次用 outlook 以为也是跟 foxmail 一样简单配置一下 ...

  9. springboot集成es7(基于high level client)

    环境: ES: 7.12.0 1.springboot工程引入es相关jar <dependency> <groupId>org.elasticsearch</group ...

  10. git常用命令与AndroidStudio常用快捷键

    git相关内容: 产生密钥:cd ~/.ssh (C:\Users\账户名称\.ssh)生成密钥:ssh-keygen -t rsa -C "your_email@youremail.com ...