
vue
可怜的前端小程序员
前端开发小程序员一枚,各种学习中。随心记录一些工作中遇到的问题
展开
-
vue源码解析之mustache模板引擎
数据变为视图的方法纯Dom方法:非常笨拙,没有实战价值 数据join法:曾今流行 ES6反引号法:`${}`语法糖 模板引擎:解决数据变为视图最优雅的方法原创 2021-05-28 16:01:10 · 266 阅读 · 2 评论 -
vue原理解析
1.kvue.jsclass KVue{ constructor(options){ this.$options=options this.$data = options.data observe(options.data) proxy(this,'$data') //创建编译器 new Compile(options.el,this) }}class Observe{ co.原创 2020-12-07 17:11:04 · 522 阅读 · 0 评论 -
vue-router实现原理
1.k-vue-router实现//k-vue-router.js实现import Link from './krouter-link'import View from './krouter-view'let Vue;// 1.实现一个插件:挂载$routerclass KVueRouter { constructor(options) { this.$options = options // 利用Vue提供的defineReactive做响应化 // 创建响应式的原创 2020-09-28 13:57:11 · 207 阅读 · 0 评论 -
vuex原理
let Vue;class Store { constructor(options) { this._mutations = options.mutations; this._actions = options.actions; this.getters = {} this._wrappedGetters = options.getters const computed ={} const store = this // getters处理.原创 2020-09-28 13:49:03 · 238 阅读 · 0 评论 -
provide与inject的使用
在父组件中,在provide中提供变量name='parentData''在子组件中通过inject接收d页面显示结果如果需要出入当前组件内数据,则需要写成一下方式需要注意的是当前传入的是对象是才能完成父子组件的值的双向绑定。展现结果点击后变为22222...原创 2019-07-02 14:13:59 · 2232 阅读 · 0 评论 -
vue mixin 混合的使用
1.简单介绍: 在vue项目中,尤其是大型项目的开发过程中,我们难免会遇到一些相同的业务逻辑处理,但又与vuex不相同的是,他不是全局的,mixin中的变量或方法是独立的,不同页面的更改不影响其他页面值的改变,比如每个页面的分页处理,提交当前页面表单处理(包括校验),显然这些放在vuex中是不科学的,因为在任一组件中通过vuex修改此变量的值之后,其他组件中此变量的值也会随之修改。...原创 2019-04-18 11:10:05 · 252 阅读 · 0 评论 -
分享几个vue大数据表格插件,并分析其优缺点
一.vue-bigdata-table 插件介绍地址: https://juejin.im/post/5ad876a36fb9a045df1720b9 gitHub地址: https://github.com/lison16/vue-bigdata-table 优点:功能完善支持拖动修改列宽、固定列不横向滚动,固定表头、内置排序、编辑单元格、...原创 2019-04-11 17:56:05 · 18514 阅读 · 3 评论 -
解决webpack打包vue项目后,部署完成后,刷新页面页面404
1.url不动式url完全不动,即你的页面怎么改变,怎么跳转url都不会改变。这种情况的原理 就是纯ajax拿到页面后替换原页面中的元素,刷新页面就是首页2.带hash(#)式这种相对于第一种的话刷新页面页面不会丢失 实现原理写一个window事件我监听url的变化,那我就能实先路由,那样我就可以根据url的变化,来通过ajax请求参数来渲染页面,一个url对应一个页面,就不会重...转载 2018-10-31 16:57:55 · 4808 阅读 · 1 评论 -
v-model语法糖介绍,实现一个自定义input组件
html:<template><div class="jsInput"><div class="jsInput-content"><input class="my-input" :type="type" @focus="handlerFocus" @blur="handlerBlur&q原创 2018-09-15 12:15:48 · 948 阅读 · 0 评论 -
vue实现拖放效果
html:<template><div class='drag-content'><div class='project-content'><div v-for='(tag,index) in tags' class="item-box"><div @click.stop="hadnlerClick" class='sele原创 2018-09-15 12:11:32 · 838 阅读 · 0 评论 -
vue中computed与watch的区别
首先在项目中的运用,他们两我感觉没有什么差别,wach能实现的computed基本也能很好的实现,但computed的简单用法只调用了getter机制,而watch同时执行了getter与setter机制,而且watch提供了深度监听的能力,这是computed无法实现的...原创 2018-10-16 15:19:43 · 150 阅读 · 0 评论 -
vue 数组元素(data)发生改变没有跟新到(view)解决方法
vue原理,通过set改变视图。话不多说,直接上代码:html: js: export default { props:原创 2017-09-20 10:26:41 · 476 阅读 · 1 评论 -
vue 中自定义指令改变data中的值
通过局部自定义指令实现了一个拖动的指令html:script:methods:{set(x,y){this.data.x=x;this.data.y=y;}},directives:{// 拖动的自定义指令drag(el,binding){//el为拖动的元素var oDiv =el; oDiv.onmousedown = functio原创 2017-06-02 15:23:41 · 5288 阅读 · 0 评论 -
es6 浅度复制解决单层级双向绑定问题
当我们利用v-bind:来绑定属性向子组件传递对象的时候,有时候我们需要子组件改变的时候不改变父组件的值,一般可以利用JSON.stringify(JSON.parse(jsonstr))将传递来的对象赋值到子组件自己的data,这样做的原理是对传过来的值重新赋予一个空间,从而解决双向绑定。,但是es6有一个深度赋值的方法也可以解决这个问题,let obj= Object.assign({}, ...原创 2017-05-12 16:09:37 · 736 阅读 · 0 评论