自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

于景波的技术博客

写代码,讲代码

  • 博客(21)
  • 收藏
  • 关注

原创 手写vue-router

MyRouter.vueimport Home from "./views/Home";import About from "./views/About";import Vue from "vue";class VueRouter { constructor(options) { this.$options = options; this.routeMap = {...

2019-08-13 13:51:20 686

原创 匿名插槽,具名插槽,作用域插槽

Vue 2.6.0之后采用全新v-slot语法取代之前的slot、slot-scopeSlot1.vue<template> <div> <slot>后备内容</slot> </div></template><script> export default {...

2019-08-13 13:45:00 658

原创 封装一个树组件

Item.vue<template> <li> <div @click="toggle"> {{model.title}} <span v-if="isFolder">[{{open ? '-' : '+'}}]</span> </div> <ul v-show=...

2019-08-13 13:38:04 660

原创 封装一个表单组件和通知组件

Input.vue<template> <div> <input :value="value" @input="onInput" v-bind="$attrs"> </div></template><script>export default { inheritAttrs: false, ...

2019-08-13 13:33:50 364

原创 权限菜单(后端返回数据)

权限菜单后端准备数据:Server.jslet express = require('express');let app = express();app.use('*', function (req, res, next) {res.header('Access-Control-Allow-Origin', '*');//Access-Co...

2019-08-11 15:10:41 5168 1

原创 使用路由做权限验证

在local Storage中定义一个标识:在路由文件中配置元信息,如下:用户页也需要登录:只要一切换页面,就需要看一个有没有这个权限,那就在最大的路由下配置,如下:逻辑如下:测试:如果有标识了,如下:考虑一个问题,...

2019-08-11 14:56:53 1334

原创 vue路由及路由的生命周期(面试常问)

基础配置如下:效果:添加用户和用户列表:效果:使用名字进行跳转时,有点问题:修改:一个路由可以对应两个组件,也就是多视图:效果:添加用户:用户列表:带参数路由:...

2019-08-11 14:50:39 5169

原创 vue组件通信(组件同步数据)

创建一个小球组件:<template> <div class="ball" :style="style"> <slot></slot> </div></template><script>export default { data() { return {}; }, ...

2019-08-11 14:36:23 473

原创 组件通信大总结

组件交互(传值,交互)分类:父组件 => 子组件: 属性props // child props: { msg: String } // parent <HelloWorld msg="Welcome to Your Vue.js App"/> 引用refs // parent <HelloW...

2019-08-11 14:25:59 432

原创 vue递归组件

SubMenu.vue<template> <div> <div class="title" @click="change"> <slot name="title"></slot> </div> <div v-show="flag"...

2019-08-11 14:16:41 335

原创 通过vue-cli创建的项目设置配置文件

配置文件是基于node的,node不支持import语法。publicPathpublicPath:之前叫baseURL,可以配置开发环境或生产环境的url环境有两种:process.env.NODE_ENV production developmentnpm run serve是开发环境 npm run build是生产环境 ---> 打包测试看效...

2019-08-11 14:16:30 702

原创 vue自定义指令

默认的函数式:实现如下:默认函数形式 = update + bind内部绑定事件:传个数:封装一个focus指令:改进:...

2019-08-10 09:21:01 152

原创 组件交互($refs)

2019-08-10 09:18:40 146

原创 组件交互($parent,$children,provide,inject)

组件交互($parent,$children,provide,inject)通过案例学习$parent和$children,如下:provide的使用:还有两种:$refs 获取实例envetBus 平级组件数据传递,这种情况下,可以使用中央事件总线的方法...

2019-08-10 09:17:38 200

原创 组件交互(props,emit,$attrs,$listeners)

全局组件和局部组件开发的优点方便协作 方便维护 复用 (数据是根据传入的数据展示)全局组件和局部组件:注意:命名 需要使用双标签父传子传孙(父传子),只能一级一级的传,不能跨级传:传递时,进行属性校验:方法传递(子触发父中的方法):请问,如下代码点击执行吗?答:不执行。它为它是组件上的属性,就不是我们常见的点...

2019-08-10 09:15:30 334

原创 vue的生命周期

官网文档:https://cn.vuejs.org/v2/guide/instance.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%9B%BE%E7%A4%BA学习生命周期就是学习几个钩子函数:

2019-08-10 09:11:46 238

原创 计算属性,方法,watch

方法没有缓存:计算属性有缓存:watch的使用:使用watch,第1次并不会触发。可以使用钩子函数,使它在第1次调用时,就被显示:watch的另外写法:computed 和 method的区别?答:computed有缓存,method没有缓存。computed 和 watch 区别?答:w...

2019-08-10 09:10:23 576

原创 vm上的方法

vm.$el,$options,$nextTick,$watchVm.$options和vm.$el:数据更新是批量的:批量更新完再去操作:之前:$watch的使用:

2019-08-10 09:07:55 577

原创 vue数据劫持

结果:数据也可能是对象,但如果是对象,上面的数据更新了就不会调用:结果:解决:给age新赋一个对象:新的对象并没有被拦截,如下:解决:数组调用push 是无效的 Object.defienProperty 不支持数组的:vue把这个数组上所有的方法都重写了,如下:...

2019-08-10 09:05:15 331

原创 vue双向绑定

单向绑定:单向数据变化 视图更新双向绑定:视图更新也会影响数据变化不使用v-model:v-model 是 @input + :value 的一个语法糖:不只输入框有双向绑定,常见的表单项也可以进行双向绑定:...

2019-08-10 09:00:01 230

原创 vue基础遗漏

外部模板和内部模板:放对象需要注意:什么样的数据可以被渲染到模板上?答:只要模板中使用了数据 必须在实例上声明 库和框架的区别?库:我们去调用库中的方法框架:我们在指定的位置写好代码,框架帮我们调用。框架是库的升级版。声明式和命令式的区别:for循环 命令式 reducer 声明式指令相关v-once:内部会进行缓存 ...

2019-08-10 08:55:28 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除