欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue_3

程序员文章站 2022-03-16 08:18:12
...

计算属性

  1. //计算属性
  2. computed:{
  3. // 如果按钮需要被禁用,则返回true,否则返回false
  4. isBtnDisabled(){
  5. if(this.selectedCateKeys.length!==3){
  6. return true
  7. }
  8. return false
  9. },
  10. // 当前选中的三级分类的Id
  11. cateId(){
  12. if(this.selectedCateKeys.length===3){
  13. return this.selectedCateKeys[2]
  14. }
  15. return null
  16. }
  17. }

Element UI

1、Dialog 对话框与Form 表单

  1. <!-- 添加参数的对话框 -->
  2. <el-dialog
  3. :title="'添加'+titleText"
  4. :visible.sync="addDialogVisible"
  5. width="50%"
  6. @close="addDialogClosed"
  7. >
  8. <el-form :model="addForm" :rules="addFormRules" ref="addFormRef" label-width="100px">
  9. <el-form-item :label="titleText" prop="attr_name">
  10. <el-input v-model="addForm.attr_name"></el-input>
  11. </el-form-item>
  12. </el-form>
  13. <span slot="footer" class="dialog-footer">
  14. <el-button @click="addDialogVisible = false">取 消</el-button>
  15. <el-button type="primary" @click="addDialogVisible = false">确 定</el-button>
  16. </span>
  17. </el-dialog>
  • 其中el-dialog对话框的标题和是否显示都是可以动态控制的
  • el-form表单通过model、rules、ref来绑定表单数据,表单验证规则,表单引用属性。el-form-item通过label、v-model绑定表单项和输入框的值,通过prop绑定验证规则组的属性
  1. // 控制添加对话框的显示与隐藏
  2. addDialogVisible:false,
  3. // 添加参数的表单数据对象
  4. addForm:{
  5. attr_name:''
  6. },
  7. // 添加表单的验证规则对象
  8. addFormRules:{
  9. attr_name:[
  10. { required: true, message: '请输入参数名称', trigger: 'blur' }
  11. ]
  12. }
  • el-dialog对话框关闭后,要对里面的el-form表单重置
  1. // 监听添加对话框的关闭事件
  2. addDialogClosed(){
  3. this.$refs.addFormRef.resetFields()
  4. }

父子路由

  • 形式
  1. const routes = [
  2. { path: '/', redirect: '/login' },
  3. { path: '/login', component: Login },
  4. {
  5. path: '/home',
  6. component: Home ,
  7. redirect: '/welcome',
  8. children:[
  9. { path: '/welcome', component: Welcome },
  10. { path: '/users', component: Users },
  11. { path: '/rights', component: Rights },
  12. { path: '/roles', component: Roles},
  13. { path: '/categories', component: Cate},
  14. { path: '/params', component: Params}
  15. ]
  16. }
  17. ]
  • 在父路由页面放路由占位符,子路由页面就可以在父路由页面显示
  1. <!-- 右侧内容主体 -->
  2. <el-main :style="{ 'height': mainH+'px' }">
  3. <!-- 路由占位符 -->
  4. <router-view></router-view>
  5. </el-main>

Vue router 非懒加载和懒加载

1.非懒加载

1.1.import

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import index from '@/view/index'
  4. Vue.use(Router)
  5. export default new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'index',
  10. component: index
  11. }
  12. ]
  13. })

1.2.require

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. export default new Router({
  5. routes: [
  6. {
  7. path: '/',
  8. name: 'index',
  9. component: require(`@/view/index`).default
  10. }
  11. ]
  12. })

注意 require 后面有个 default

2.懒加载

2.1.import

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. export default new Router({
  5. routes: [
  6. {
  7. path: '/',
  8. name: 'index',
  9. component: () => import(`@/view/index`)
  10. }
  11. ]
  12. })

注意这是一个箭头函数

2.2.require

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. export default new Router({
  5. routes: [
  6. {
  7. path: '/',
  8. name: 'index',
  9. component: resolve => (require([`@/view/index.vue`], resolve))
  10. }
  11. ]
  12. })

注意这是一个箭头函数

路由懒加载,也叫按需加载

使用路由懒加载后,可以减小app.js文件的大小,从而缩短第一次打开vue项目的加载时间。

  • 为什么
    1.直接把组件通过import引用到页面,然后打包,其中app.js 259 kb
    2.将组件通过component: ()=>import(‘@/view/tab2/tab32’)的方式动态加载后打包,其中app.js 35 kb
    3.这样一来,路由越多,app.js文件越大,app.js越大,第一次打开vue项目的时间越久,使用动态加载的方式后,每个组件的DOM文本会单独打包成一个文件,当用户路由访问的时候,页面会动态加载对应的文件,这样就是现实了首次快速打开vue项目的优化方式之一。

推荐阅读