web前端开发学习笔记

note:

1. ref=“form” (ref = ‘aa’)

refs = [‘form’, ‘aa’]
this.$refs.form (或document.getElementById(“”)) ----获取元素或子组件的属性
父组件通过 this.$refs.terminal.tab获取子组件的属性,做进一步操作(terminal为子组件)。

2. $attrs 表示父传子的属性,子没有接收,但已存在 孙可以继承使用

v-bind=“$attrs”

包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs"传入内部组件——在创建更高层次的组件时非常有用

async getAsets() {
  try {
    const where = {
      id: this.$attrs.id,
      ip: this.ip
    }
    const res = await assets(where)
    this.assets = res
  } catch (err) {
    this.assets = []
    throw new Error(err)
  }
}

3. localStorage

参考:cookie、sessionStorage和localStorage的区别
JSON对象提供的parse和stringify将其他数据类型转化成字符串,再存储到storage中就可以了
操作的方式:
存:
var obj = {“name”:“xiaoming”,“age”:“16”}
localStorage.setItem(“userInfo”,JSON.stringify(obj));
取:
var user = JSON.parse(localStorage.getItem(“userInfo”))
删除:
localStorage.remove("userInfo);
清空:
localStorage.clear();
注:setItem (key, value) ——保存数据,以键值对的方式储存信息。
getItem (key) ——获取数据,将键值传入,即可获取到对应的value值。
removeItem (key) —— 删除单个数据,根据键值移除对应的信息。
clear () —— 删除所有的数据
key (index) —— 获取某个索引的key

4.vue动态绑定class的最常用几种方式

(1)绑定单个class

<div :class="{'active':isActive}"></div>
------------------------------------------
data() {
  return {
    isActive: true
  };
}
-----------------
<div class="active"></div>   // 渲染结果

(2)若要绑定多个class,需要逗号隔开就行:(这里的activeTwo加不加引号都可以,也一样都能渲染,如下):

<div class="activeOne" v-bind:class="{ activeTwo: isActive, 'activeThree': hasError }"></div>
-----------------------------------------------------------------------------------------
data() {
  return {
    isActive: true,
    hasError: true
  };
}
-----------------------------------------------------------------------------------------
<div class="activeOne activeTwo activeThree"></div>   // 渲染结果

//按钮启用/禁用
<div
  :class="{ 'stops': actionsOptions.stop.disabled, 'stop': !actionsOptions.stop.disabled }"
></div>

5.用CSS画图标

(1)简单例子–停止按钮:

.stop {
  width: 20px;
  height: 20px;
  background-color: #1976d2;
  border-radius: 100%;
  outline: 4.6px solid white;  // div的轮廓
  outline-offset: -17px;  // 轮廓与边框的距离
  cursor: pointer;   // 光标的类型(形状)--pointer: 小手
}

注1:用CSS绘制图标----outline-offset----cursor
注2:图标库-material-design-icons-iconfont

6.addEventListener()与removeEventListener()

vue中给window添加和移除resize事件:

methods: {
	screenSize(){
	//窗口大小改变时的操作
	}
},
mounted() {
  window.addEventListener('resize', this.screenSize, false)   //注意this.screenSize不带括号
},
beforeDestroy() {
  window.removeEventListener('resize', this.screenSize, false)
}

注:
1.添加和移除resize事件
2.vue中在mounted中window.onresize不生效解决方法

7.vue动态绑定style–三元运算

<v-row
  :style="{'max-width': isActive ? 'calc(55% + 24px)' : 'calc(100% + 24px)'}"
  align="center"
  justify="center"
>
--------------------------------------------------------------------------------
data: () => ({
  isActive: false
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值