Vue基础点梳理

码途琉璃狩
• 阅读 1649

1、vue指令-v-model修饰符

语法:

v-model.修饰符="vue数据变量"

.number   以parseFloat转成数字类型
.trim     去除首尾空白字符
.lazy     在失去焦点时触发更改而非inupt时

2、计算属性

计算属性有缓存,提高渲染性能。

如果在页面上需要用到 对现有的数据进行加工得到新数据,则时要使用计算属性。

写法:

computed: {
    "属性名": {
        set(值){
            
        },
        get() {
            return "值"
        }
    }
}

3、vue监听器

可以监听数据(data/computed等)的值的改变。数据的值有类型:基本数据类型,引用数据类型

深度监听

watch: {
    "要监听的属性名": {
        immediate: true, // 立即执行
        deep: true, // 深度监听复杂类型内变化
        handler (newVal, oldVal) {
            
        }
    }
}

4、scoped实现组件的私有样式

<stype scoped>
  h2 {} // 样式只会在当前组件内生效
</style>

5、父传子

父组件


<template>
  <div>
    <child :users="user"></child> <!-- 子组件绑定users变量-->
  </div>
</template>
 
<script>
import { child } from "./child";
export default {
  components: { child },
  data() {
    return {
      user: '张三'
    };
  }
};
</script>

子组件

<template>
  <div>{{ users }}</div>
</template>
 
<script>
export default {
  props: ["users"] //接收user值
};
</script>

6、子传父

子组件

<template>
  <div>
    <button @click="datas"></button>
  </div>
</template>
 
<script>
export default {
  methods: {
    datas() {
      this.$emit("info", value); //$emit 的第一个参数是父组件自定义事件的方法名,后边的 “value” 是子组件要给父组件传递的数据 
    }
  }
};
</script>

父组件

<template>
  <div>
    <child @info="getInfo"></child>
  </div>
</template>
 
<script>
import { child } from "./child";
export default {
  components: { child },
  methods: {
    getInfo(value) {
      // value 就是子组件传递过来的数据
    }
  }
};
</script>

7、组件进阶 - props校验

props: {
    // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
    propA: Number,
    // 多个可能的类型
    propB: [String, Number],
    // 必填的字符串
    propC: {
      type: String,
      required: true
    },
    // 带有默认值的数字
    propD: {
      type: Number,
      default: 100
    },
    // 带有默认值的对象
    propE: {
      type: Object,
      // 对象或数组默认值必须从一个工厂函数获取
      default: function () {
        return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        // 这个值必须匹配下列字符串中的一个
        return ['success', 'warning', 'danger'].indexOf(value) !== -1
      }
    }
  }

8、组件进阶 - 动态组件

<component :is="comName"></component> //comName是变量,值为需要切换的几个组件名

9、组件进阶 - keep-alive组件

用keep-alive内置的vue组件, 让动态组件缓存而不是销毁

<keep-alive>
    <!-- vue内置的组件component, 可以动态显示组件 -->
    <component :is="comName"></component>
</keep-alive>

组件进阶-keep-alive组件-指定缓存

语法

include="组件名1,组件名2..."
:include="['组件名1', '组件名2']"

<keep-alive include="name1,name2">
    <!-- vue内置的组件component, 可以动态显示组件 -->
    <component :is="comName"></component>
</keep-alive>

10、组件进阶 - 具名插槽

格式

定义:<slot name="xxx">

使用:

<template #xxx></template>;
<template v-slot:xxx></template>

11、自定义指令 - 基本使用

{
  data(){},
  methods: {},
  directives: {
    focus: { // 自定义指令名
        inserted(el){ // 固定配置项 - 当指令插入到标签自动触发此函数
            el.focus()
        }
    },
  },
}

12、自定义指令 - 传值和更新

目标: 使用自定义指令, 传入一个值

需求: 定义color指令-传入一个颜色, 给标签设置文字颜色

main.js定义处修改一下

directives: {
  "color":{
    inserted(el, binding){ // 插入时触发此函数
      el.style.color = binding.value;
    },
    update(el, binding){ // 更新绑定的变量时触发此函数=》手动更新
      el.style.color = binding.value;
    }
  }
}

Direct.vue处更改一下

<p v-color="theColor" @click="changeColor">使用v-color指令控制颜色, 点击变蓝</p>

<script>
  data() {
    return {
      theColor: "red",
    };
  },
  methods: {
    changeColor() {
      this.theColor = 'blue';
    },
  },
</script>

总结: v-xxx, 自定义指令, 获取原生DOM, 自定义操作

13、axios请求

 async loadData(){
     const res= await axios.get("http://.......")
    // console.log(data);
 },
 created(){
    this.loadData()
 }
点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
简
4年前
TS 的脚步已经拦不住,代码撸起来
前言vue3已经发布了,ts的脚步已经阻拦不住了,还只会es6?别想了,人家都已经在行动了,以下是ts的基本系列教程,ts的基本语法,高级语法等,以及在vue项目中如何应用ts,跟着我赶紧撸起来吧。基本数据类型数字const a: number  3;字符串const b: string  "1
Easter79 Easter79
3年前
typeScript数据类型
//布尔类型letisDone:booleanfalse;//数字类型所有数字都是浮点数numberletdecLiteral:number6;lethexLiteral:number0xf00d;letbinaryLiteral:number0b101
Wesley13 Wesley13
3年前
java 11 增加了一系列的字符串处理方法,Optional 加强 ,改进的文件API
增加了一系列的字符串处理方法如以下所示。//判断字符串是否为空白"".isBlank();//true//去除首尾空白"Javastack".strip();//"Javastack"//去除尾部空格"Javastack".stripTrailing();//"Javastack"//
翼
4年前
uniapp中全局变量globalData使用
使用uniapp开发时,可以通过在app.vue中定义全局变量,在每个页面内通过globalData获取1、app.vue文件的写法<scriptexportdefault{globalData:{loginSta:false},onLaunch:function(){
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
02、Vue.js
1、插值    在Vue.js指令学习之前,先简单学习一下Vue插值    语法:_{{}}_,将vue实例中的数据写入到页面对应的位置。下面代码中hello、msg、num等均是在vue的data中定义的变量。1.1文本插值<div{{hello}}<div1.2HTML标签插
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
Java修饰符类型
修饰符是一种添加到定义以更改其含义的关键字。Java语言有各种各样的修饰符,包括以下两种Java访问修饰符例如:private,protected,public等。Java非访问修饰符例如:static,final等。要使用修饰符,请在类,方法或变量的定义中包含修饰符关键字。修饰符位于语句之前,