为您找到搜索结果:2016个
Vue2 封装的 Quill 富文本编辑器组件 Vue-Quill-Editor
1、安装 npminstallvue-quill-editor--save2、使用import{quillEditor}from'vue-quill-editor' 3、组件中<quill-editorv-model="content"ref="myQuillEditor"class="editer":options="editorOption"@ready="onEditorReady($event)"></quill-editor> data(){return{content:'<h3>文本编辑</h3>',editorOption:{}}},components:{NavHeader,quillEditor,},computed:{editor(){returnthis.$refs.myQuillEditor.quill}},methods:{onEditorReady(editor){console.log('editorready!',editor)},submit(){console.log(this...
Vuex简单实例以及安装遇到的坑
vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。vuex面试考点两张图一句话一句话:vuex中的异步操作只能在actions中,也就是ajax交互请求数据 引入Vuex(前提是已经用Vue脚手架工具构建好项目)1、利用npm包管理工具,进行安装vuex。在控制命令行中输入下边的命令就可以了。npminstallvuex--save2、新建一个store文件夹(这个不是必须的)并在文件夹下新建index.js文件,文件中引入我们的vue和vuex。importVuefrom'vue';importVuexfrom'vuex';3、使用我们vuex,引入之后用Vue.use进行引用。Vue.use(Vuex);通过这三步的操作,vuex就算引用成功了,接下来我们就可以尽情的玩耍了。定义statemutations并抛出conststate={cartCount:{cartNum:0}}constmutations={initCartCount(sta...
初学Vue之数量加减
效果图:HTML:<divclass="count3"><ul><liv-for="(key,idx)inliList":key="key.id">{{key.id}},{{idx}}<template><buttonclass="cut"@click="cuts(idx)">-</button><span>{{key.num}}</span><buttonclass="add"@click="add(idx)">+</button></template></li></ul>总数:{{total}}</div> JS: vartest=newVue({el:".count3",data:{total:0,liList:[{id:0,num:0},{id:1,num:0},{id:2,num:0}]},methods:{cuts:function(idx){if(this.liList[idx].num...
vue-3.2-组件的三种定义方式
1.什么是组件:组件的出现,就是为了拆分Vue实例的代码量,能够让我们以不同的组件,来划分不同的功能模块,将来需要什么样的功能,就去调用对应的组件即可;2.模块化:是从代码的角度进行划分的;方便代码分层开发,保证每个模块的职能单一;3.组件化:是从UI界面的角度进行划分的;前端的组件化,方便UI组件的重用!定义组件的三种方式: 第一种:<body><divid="app"><!--如果使用组件,直接把组件的名称,以HTML标签的形式,引入到页面中,即可--><mycom1></mycom1></div><script>//1.1使用Vue.extend来创建全局的Vue组件varcom1=Vue.extend({template:'<h3>这是使用Vue.extend创建的组件</h3>'//通过template属性,指定了组件要展示的HTML结构})//1.2使用Vue.component('组件的名称',创建出来的组件模板对象)//Vue.component('myCom1...
vue-3.1-列表动画
<!DOCTYPEhtml><htmllang="en"xmlns:v-bind="http://www.w3.org/1999/xhtml"xmlns:v-on="http://www.w3.org/1999/xhtml"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title><scriptsrc="../lib/vue.min.js"></script><linkrel="stylesheet"href="../lib/bootstrap.min.css"><style>li{border:1pxdashed#999;margin:15px;line-height...
vue-2.5-vue-resource的使用-get、post、jsonp发送请求
<!DOCTYPEhtml><htmllang="en"xmlns:v-bind="http://www.w3.org/1999/xhtml"xmlns:v-on="http://www.w3.org/1999/xhtml"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title><scriptsrc="../lib/vue.min.js"></script><linkrel="stylesheet"href="../lib/bootstrap.min.css"></head><body><divid="app"><inputtype="b...
vue-2.4-生命周期函数
先看官网的图: <body><divid="app"><inputtype="button"value="修改msg"@click="update"><h3id="h3">{{msg}}</h3></div><script>//创建Vue实例,得到ViewModelvarvm=newVue({el:'#app',data:{msg:'ok'},methods:{show(){console.log('执行了show方法')},update(){this.msg='no'}},beforeCreate(){//第一个生命周期函数,表示实例完全被创建出来之前,会执行它//console.log(this.msg)//this.show()//注意:在beforeCreate生命周期函数执行的时候,data和methods中的数据都还没有被初始化},created(){//第二个生命周期函数//console.log(this.msg)//this.show()//在created中,data和me...
vue-2.3自定义全局与私有指令
<!DOCTYPEhtml><htmllang="en"xmlns:v-bind="http://www.w3.org/1999/xhtml"xmlns:v-on="http://www.w3.org/1999/xhtml"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title><scriptsrc="../lib/vue.min.js"></script><linkrel="stylesheet"href="../lib/bootstrap.min.css"></head><body><divid="app"><divclass="pa...
vue-2.2过滤器的使用与时间格式化
<script>//添加全局过滤器,进行时间格式化Vue.filter('dateFormat',function(dateStr,pattern=''){//根据给定的时间字符串,得到特定的时间vardt=newDate(dateStr)//yyyy-mm-ddvary=dt.getFullYear()varm=(dt.getMonth()+1).toString().padStart(2,'0')vard=dt.getDate().toString().padStart(2,'0')//returny+'-'+m+'-'+''d//return`${y}-${m}-${d}`if(pattern.toLowerCase()==='yyyy-mm-dd'){return`${y}-${m}-${d}`}else{varhh=dt.getHours().toString().padStart(2,'0')varmm=dt.getMinutes().toString().padStart(2,'0')varss=dt.getSeconds().toString().padSt...
vue-2.1-品牌案例的添加、删除、和搜索功能
<head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title><scriptsrc="../lib/vue.min.js"></script><linkrel="stylesheet"href="../lib/bootstrap.min.css"><!--https://files.cnblogs.com/files/cgy-home/bootstrap.min.css--></head><body><divid="app"><divclass="panelpanel-primary"><divclass="panel-heading">&...
vue-01-插值表达式、事件修饰符
<!DOCTYPEhtml><htmllang="en"xmlns:v-bind="http://www.w3.org/1999/xhtml"xmlns:v-on="http://www.w3.org/1999/xhtml"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title><!--1.导入Vue包下载地址:https://files.cnblogs.com/files/cgy-home/vue.min.js--><scriptsrc="../lib/vue.min.js"></script></head><body><!--2.创建一个要控制的...
vue 父组件动态传值给子组件的方法
父组件:<uni-collapse-itemtitle="标题信息"ref="child1"thumb="../../static/send-goods.png"></uni-collapse-item>this.$refs.child1.childMethod(count)//调用子组件的函数,并把这个状态传过去。如果在v-for循环中:that.$refs.child[index].childMethod(count) 子组件: data(){return{childVal:''}},methods:{childMethod(flag){//这个就是子组件的函数参数是父组件调用时传过来的 this.childVal=flag;//将这个状态赋给当前的对话框所绑定data数据上 }} ...
记录Vue和Jquery混合开发中关于点击事件的一个bug
最近比较急的接手了公司的微信服务号项目,采用的技术栈主要是jq和vue。在项目中之前碰见过jq写的$().on('click',function(){})点击事件不起作用,只能写在vue实例中的methods中,然后用@click去监测。一直困惑的是这个BUG在不同的页面中有时有,有时没有,而且出现的情况很少。今天工作闲了一点,于是乎专心去琢磨这个问题。网上百度到的解决方案是这样的,如下图:于是乎自己试了一下确实可以。代码如下图:但是回过头来看项目就很奇怪,说的写在JQ的dom加载完成函数中就可以,但是我的具体项目中为什么不行呢?而其他页面的却可以呢?于是乎开始从繁至简的减少代码,想要减少的如上,页面也简化。jq写的点击事件就是如下的‘伙伴详情’这一列是v-for生成的,当把dataList直接改为数字后,点击是可以生效的,于是开始考虑是dom渲染问题,之前也这样猜想过,但没有过去验证到底是哪块的问题。如果dataList是请求后端数据生成的,那可能是时间差上有问题。于是我在vue实例中的$this.nextTick中和jq点击事件前分别打印时间。得到如下图:显...
Vue Elementui 如何让输入框每次自动聚焦
在项目优化中碰到一个小问题,在每次提示框显示的时候让提示框中的输入框聚焦。如下图。一般情况下提示框是隐藏的。点击了编辑才会弹出。 那么原生属性autofocus只在模板加载完成时起作用,也就是说只有第一次有用。然后尝试了ref,再this.$refs.el也不能成功拿到该元素,因为饿了么组件封装的<el-input>对应的是外面一个div,里面包了个input,在获取元素的时候有问题的。第二种尝试,利用class或者id获取元素,然后再手动聚焦el.focus(),好像也不起作用。然后查看文档决定用,diretives自定义指令,然而还是怎么弄都没用。最后又是网上各种查,才明白,inserted只在元素插入的时候才有用,然而饿了么组件中提示框的隐藏显示是v-show原来。没办法最后只能把<el-input>替换掉,换成原生标签input,样式上直接class复制一下之前的样式吧。v-if与提示框的v-show的值绑定在一起,这样就轻松实现啦!总结反思,对vue的自定义指令原理不熟悉,对饿了么组件的封装原理也不是十分明白。总觉得还有更简单的方法,希望大佬...
vue中数据双向绑定的实现原理
vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下。首先大致学习了解下Object.defineProperty()这个东东吧!*Object.defineProperty()*对对象的属性进行定义/修改**/letobj={x:10}//这两种方式都相对来说比较简单,直接,但是有些时候我们需要对对象的属性的修改和增加进行必要的干预//obj.y=20;//obj.x=100;//obj.x='abc';////letarr=[1,2,3];//arr.length='abc';//不可更改//console.log(arr);//console.log(obj.x);//deleteobj.x;//console.log(obj);Object.defineProperty(obj,'y',{configurable:false,//设置是否可删除false为不可删除value:100});console.log(obj);deleteobj.y;//删除console.log(obj);//设置对象某个属性值的时候,顺便设置它的...