11月
30
如果既想用 bootstrap 框架,又想用 vue 的语法。那 bootstrap-vue 就是个不错的选择。
官网:https://bootstrap-vue.org/
怎么做呢
vue create btvue.cn
# 如果提示 bash: vue: command not found,那就是 vue cli 没有装。装一下。
# https://cli.vuejs.org/zh/guide/installation.html
npm install -g @vue/cli
# 然后再 vue create btvue.cn
# 就这样创建了一个基础的 vue 项目
继续阅读
11月
15
cropperjs 很多年中,对处理图片裁切做的体验非常棒。几个项目中,也使用过。那时候还是使用 jquery 这种传统的方式。现在想整一个使用 vue 和 element ui 组合在一起的模板。
cropperjs: https://github.com/fengyuanchen/cropperjs
photo-editor:https://github.com/fengyuanchen/photo-editor
继续阅读
11月
12
git 地址: https://github.com/hinesboy/mavonEditor
操作一波
npm install mavon-editor
然后
# main.js
import mavonEditor from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
Vue.use(mavonEditor)
继续阅读
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
在某些场景下,socket 是必须要使用的。vue element admin 中,自己所做的后台中,就想使用这玩意。那么,就 websocket。
websocket 的客户端创建使用是很简单,有些问题却必须要面对。
- 怎么做断线重连。(socket.io 自身就实现了,可这里不用它)
- 怎么解决在整个项目中的数据来回。
- 在什么时候创建 websocket 连接。
断线重连是自己手动去建立一个心跳的方式来实现。socket.io 中叫 ping pong。这里就自定义的搞一搞。数据来回,使用全局事件的方式来处理。无论哪种语言,事件这种方式从来都不会缺失。在什么时候创建连接呢,因为这里针对的是登录后的一些功能,所以最好在登录成功后只调用创建一次。我们可以在 permission.js 中引入并创建。
继续阅读
9月
23
在常规情况下,去定义组件的时候,只需要用到父子组件通讯即可。这样比较好实现。有时候,也会用到任意组件间的通讯,这个时候自定义组件的方式就有用了。不弄那么多,只弄一个。
先看常见父子通讯
# 使用组件的地方
<sky @changeColor="changeColor" />
methods: {
changeColor(value) {
}
}
# 组件内部,仅此而已。子组件中的数据,就可以被父组件收到了
this.$emit('changeColor', 'blue')
继续阅读
9月
22
在诸多 Vue.js 应用中, Lodash, Moment, Axios, Async等都是一些非常有用的 JavaScript 库. 但随着项目越来越复杂, 可能会采取组件化和模块化的方式来组织代码, 还可能要使应用支持不同环境下的服务端渲染. 除非你找到了一个简单而又健壮的方式来引入这些库供不同的组件和模块使用, 不然, 这些第三方库的管理会给你带来一些麻烦.
本文将介绍一些在 Vue.js 中使用第三方库的方式.
全局变量
在项目中添加第三方库的最简单方式是讲其作为一个全局变量, 挂载到 window
对象上:
entry.js
window._ = require('lodash');
MyComponent.vue
export default {
created() {
console.log(_.isEmpty() ? 'Lodash everywhere!' : 'Uh oh..');
}
}
继续阅读
9月
11
设想我们的后台是前后端分离的,可以和主站点同域名,也可以不同域名。当前考虑的前端框架有 ant design pro 和 vue element admin。虽然 ant design pro 是阿里的业余产品,ui 漂亮丰富,使用 react 来开发,可前端总体表现上没有 vue element admin 小,前端展示细节问题没处理好,而且一直在更新一直又不好。还是果断选择 vue element admin。
预览页: https://panjiachen.github.io/vue-element-admin
文档页:https://panjiachen.gitee.io/vue-element-admin-site/zh/
这里,使用的和主站点同域名,同环境下。这个时候就得为后台想一个好的路由前缀,暂且这么叫吧。这里使用的是 http://jk.cn/admin
。 对,就是 admin,文件放在非根目录下(admin 下),打包编译的时候需要注意,可关注发布相关细节。
继续阅读