Write the Code. Change the World.

分类目录
11月 11

markdown 写技术博客的必须品。这里记录下 vue 中使用 tui-editor 的过程

代码: https://github.com/nhn/tui.editor

preview: https://ui.toast.com/tui-editor

操作一波

npm install tui-editor

安装好后,先定义一个组件,我们在组件里组织 markdown 编辑器相关的逻辑。

那么就在 src/components/ 下吧。

src/components/MarkdownEditor/index.vue
继续阅读

10月 26

eleme ui 的 el-select 组件会自动清除数据空格,无论空格在左边,右边还是中间。某些场景下,这个让人难以接受, 怎么办了。方法是有的。

操作一波

<el-select v-model="form.id" clearable placeholder="请选择">
    <el-option
           v-for="item in list"
           :key="item.id"
           :label="item.raw"
           v-html="item.label"
           :value="item.id">
     </el-option>
</el-select>

# list 的内容
let list = [
   {
      id: 1,
      label: '        凤舞九天',
      raw: '凤舞九天'
   }
]

这样就可以了。babel 看情况需要,加上 v-html ,用   代替空格。

10月 25

el-tree 蛮好使用的,就是排版的方向永远都是从上到下。同一级没办法,合向并着展示。那么,想要实现这种效果,就得自己改代码,操作了。

操作一波

vue 中,el-tree 的默认节点和数据如下:
继续阅读

9月 25

先看一个漂亮的 点击看漂亮的

UI

操作一波

编辑 resources/sass/_variables.scss,增加下边的定义

// 定义主题颜色
$primary:       #9c27b0 !default;
$success:       #4caf50 !default;
$info:          #00bcd4 !default;
$warning:       #ff9800 !default;
$danger:        #f44336 !default;

// 修改点击按钮的时候,按钮周围的边框,好难看,强迫症要干掉。这样会把input的边框也干掉了,不好。
$input-btn-focus-width:       0 !default;
$input-btn-focus-box-shadow:  none !default;

然后,执行编译打包。

yarn run dev

打包好后,刷新登录页面,是不是发现 input框,按钮都变了呀。

下一步

主题颜色也变了,那么下一步去搞搞在 blade 中使用 vue 组件的问题。虽然大多时候不需要 vue,要不就用纯 vue 了。可偶尔某些组件用 vue 还是蛮好的。

9月 25

在某些场景下,socket 是必须要使用的。vue element admin 中,自己所做的后台中,就想使用这玩意。那么,就 websocket。

websocket 的客户端创建使用是很简单,有些问题却必须要面对。

  1. 怎么做断线重连。(socket.io 自身就实现了,可这里不用它)
  2. 怎么解决在整个项目中的数据来回。
  3. 在什么时候创建 websocket 连接。

断线重连是自己手动去建立一个心跳的方式来实现。socket.io 中叫 ping pong。这里就自定义的搞一搞。数据来回,使用全局事件的方式来处理。无论哪种语言,事件这种方式从来都不会缺失。在什么时候创建连接呢,因为这里针对的是登录后的一些功能,所以最好在登录成功后只调用创建一次。我们可以在 permission.js 中引入并创建。
继续阅读

9月 23

在常规情况下,去定义组件的时候,只需要用到父子组件通讯即可。这样比较好实现。有时候,也会用到任意组件间的通讯,这个时候自定义组件的方式就有用了。不弄那么多,只弄一个。

先看常见父子通讯

# 使用组件的地方
<sky @changeColor="changeColor" />

methods: {
    changeColor(value) {

    }
}
# 组件内部,仅此而已。子组件中的数据,就可以被父组件收到了
this.$emit('changeColor', 'blue')

继续阅读