计算属性

  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项目的优化方式之一。

更多相关文章

  1. 控制器和路由
  2. 定义网站路由
  3. Laravel 实现登录
  4. 完成婚恋网项目后台页面
  5. 婚恋网站相关控制器和路由
  6. 定义网站相关路由内容
  7. 婚恋网后台的资源路由 普通控制器和资源控制器
  8. 婚恋网后台管理路由
  9. 0902作业 常规形式定义婚恋网后台管理路由

随机推荐

  1. android 中文 api (64) ―― Scroller
  2. Android Studio 4.0 - 创建新项目
  3. android添加广告之--有米
  4. ImageView的src和background一些我的理解
  5. EditText实现输入限制和校验功能实例代码
  6. Android 设定横竖屏,屏幕旋转导致Activity
  7. android 线程(一)
  8. Android(安卓)HandlerThread全面解析
  9. Android之Intent全面解析及用法
  10. android国际化