Vue 的一些用法

代码逐风鹤
• 阅读 1055

关于Vue

vue.js视频课程

关于父子兄弟控件的传值

写在最前

如果是需要共享的数据,最好使用vuex来store

Vuex官网
Vuex 课程

不同插件传值

控件-处理边界情况

v-mode

  • .lazy - 取代 input 监听 change 事件
  • .number - 输入字符串转为有效的数字
  • .trim - 输入首尾空格过滤

对于单选按钮、勾选框及选择列表选项, v-model 绑定的 value 通常是静态字符串(对于勾选框是逻辑值)。所以常见有以下错误

<el-input v-model="num" type="number" placeholder></el-input>

data() {
    return {
      num: 1,
    };
  }

当你定义num为number类型后,如果在input里面给num复制后,你会惊奇的发现num 变成string类型。
解决办法:加上.number后缀 <el-input v-model.number="num" type="number" placeholder></el-input>


在某些场景下,我们会使用 {} 来存储某类对象的映射关系,例如车主和车子的映射关系可记为:

{
    'Alice': new Car(),
    'Bob': new Car()
}

而在 TypeScript 中声明这种对象的类型时遇到了问题:该对象的属性名是未知的,不过所有属性名对应的值的类型是确定的。这种情况下可以借助 Indexable Types 解决,以上述的例子为例:

interface CarOwners {
    [key: string]: Car;
}

const carOwners: CarOwners = {
    'Alice': new Car(),
    'Bob': new Car()
}

参考:

关于TS检查

在写代码时候有提示有些变量没有使用得错误no-unused-vars,这种有时候很烦人,解决办法是在package.json文件里面eslintConfig->rules下面配置:

 "no-unused-vars": [0, {
                "vars": "local",
                "args": "none"
            }]

其他相关规则检查也可以加到里面

单页面如何更改title

需要用到自定义指令-directive

1.定义自定义指令
directive.ts

export default {
    webTitle: {
        inserted(el:any, binding:any) {
            const { value } = binding;
            if (!!value == true) { // 方式2,指令传参
                document.title = value
            }
        },
        update(el:any, binding:any, vnode:any, oldVnode:any) {
            const { value } = binding
            if (!!value == true) { // 方式2,指令传参
                document.title = value
            }
        }
    }
}

2.注册到vue
main.js

import directive from './lib/directive'

Vue.directive("webTitle",directive.webTitle)

3.在vue-router路由中定义title

  meta: {
                title: '用户管理',
            }

4.注册
在组件任意元素上注册 v-web-title="$route.meta.title"

注意格式v-web-title,与webTitle相对应。
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
代码逐风鹤
代码逐风鹤
Lv1
白日放歌须纵酒,青春作伴好还乡。
文章
4
粉丝
0
获赞
0