vue_3

阿杰
阿杰原创
2021年09月22日 09:38:21597浏览

计算属性

  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项目的优化方式之一。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议