Vue2项目开发技巧总结---持续更新

195 阅读1分钟

“携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

Vue2项目开发技巧总结---持续更新

改良注册全局组件的方式

新建components文件夹

1 各全局组件如全局工具栏组件components/PageTools/index.vue
// 全局组件业务
<template>
  <div class="page-tools">
    <el-card>
      <el-row type="flex" justify="space-between">
        <el-col>
          <div v-if="showBefore" class="before">
            <slot name="before" />
          </div>
        </el-col>
        <el-col>
          <el-row type="flex" justify="end">
            <slot name="after" />
          </el-row>
        </el-col>
      </el-row>
    </el-card>
  </div>
</template>
2 在components/index.js 统一引入全局组件并 export 出去

❗注意写法

import PageTools from './PageTools/index.vue'
import Lang from './lang/index.vue'

export default {
  install(Vue) {
    Vue.component('PageTools', PageTools)
    Vue.component('Lang', Lang)
  }
}
3 在 main.js中注册组件
import Components from './components/index'
Vue.use(Components)

为什么插件可以直接通过Vue.use方法来注册组件

是因为插件内容实现了一个install函数

而且,当我们用Vue.use方法来注册组件的时候,这个方法会自动调用插件内提供的install函数

并且会给install传递Vue,这样install函数内部就可以通过Vue.component来注册组件了

多全局过滤器引入写法

过滤器

作用:

提供一个全局方法,处理数据,并把处理后的数据返回给使用者

使用语法:

变量 | 过滤器名字

注意点:

过滤器只能使用在插值表达式或者v-bind动态属性中

多个全局过滤器使用步骤:

定义

创建 filters/index.js文件(存放所有全局过滤器)
export const formatTime = (time,option){
    // 格式化时间业务
}
export const checkPassword = (rule,value,callback){
    // 校验密码业务
    if (!value) {
    return callback(new Error('密码不能为空'))
  } else if (value.length < 6) {
    callback(new Error('请至少输入 6 个字符。请不要使用容易被猜到的密码'))
  } else {
    callback()
  }
}

全局注册

import * as obj from '@/filters/index'
// 表示通过*导入所有的函数,并且通过as关键词对*进行重命名

for(const key in obj){
	Vue.filter(key,obj[key])
}

单个全局过滤器注册语法

Vue.filter('过滤器的名字', (val) => {将来使用该过滤器时传入的值}