# vue

vue中使用neditor

neditor是从ueditor改写过来了,做了不少优化,我最喜欢的就是去掉了服务端附件配置请求。还有一个有点就是,可以很方便的对接七牛cdn或oss。
如果是简单的使用可以用vue-neditor-wrap,复杂场景下会有bug,所以自己写了个组件,将必要的js引入放到了index.html中。下面是使用注意事项,追后有本示例的源码。

vue自定义组件v-model绑定数据的实现方法

代码

父组件调用

1
<list v-model="data" :multiple="true"></list>

子组件list.vue代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<template>
<el-select v-model="val" v-bind="$attrs" placeholder="请选择">
<el-option
v-for="item in list"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</template>

<script>
import { getColumnList } from '@/api/column.js'

export default {
inheritAttrs: false,
model: {
prop: 'value',
event: 'change'
},
props: {
value: null
},
data () {
return {
list: [{id:'1',name:'张三'},{id:'2',name:'李四'}]
}
},
computed: {
val: {
get () {
return this.value
},
set (newval) {
this.$emit('change', newval)
}
}
}
}
</script>

vuex getters不更新的奇怪现象解决方案

今天写代码的时候遇到一个很奇怪的问题,getter里面取到的值怎么都不是最新的。
调用setAuth清空后,从vue开发工具(vue-Devtools)中查看,state.auth已经正常被设置成了空值。但是gettersmapGetters取到的还是更新前的值。

vue组件之插槽

这篇文章的写作时间是 vue2.6 发布后,因此适用于 2.6 以后的版本
插槽是 vue 组件中很重要的一环,他解决了组件内容自定义的问题。以及父子组件变量传递的问题(作用域插槽)。
在 2.6 以后的版本中,具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令),它取代了 slot 和 slot-scope 。这两个老的已经进入废弃期,为了保持平滑升级,目前还可以使用,但是不推荐使用。后期会被移除。

vscode 保存自动按eslint格式化

三步走:

  1. 安装 vuter,eslint,Prettier-code fromatter
    vuter 是 vue 高高亮插件,安装后 vscode 就可以识别.vue文件了
  2. 配置 vscode 首选项
    选择 file 》Preferences 》Settings 打开配置。然后选择 User Settings,点击右上角的{}按钮,进入文本编辑状态
  3. 配置内容

前后端分离session跨域解决方案

session

php的session比cookie安全,这是好多人知道的常识。session的数据是存放在服务端的,那么程序是如何取到对应的session呢?
那是因为每一个session都有一个身份证号,那就是session id。这个东西一般情况下,服务器会发送给客户端,客户端将它放在cookie里。
cookie是存在跨域问题的,什么叫跨域呢?a.domain.com下创建的cookie,在b.domain.com下是无法使用的,我们需要进行跨域设置。

axios

用过vue开发前后端分离程序的人对axios相比都不陌生了,js前后端分离,如果前后端用两个域名,也存在跨域问题。