记自己在开发中常用的东西(持续更新中……)

1、watch的写法

监听data中的值

	cur(news, olds) {
	window.scrollTo(0,0)

监听state中的值

	'$store.state.orderType':function() {
		......
	}
2、启动dist目录
	// 全局安装serve
	npm install -g serve
	// 运行打包后的文件
	serve -s dist
3、使用css变量
	:root {
	--bg-color: red;
	
	.title {
		background-color: var(--bg-color)
	}
	.desc {
		background-color: var(--bg-color)
	}
4、事件总线的创建方法

eventBus、layout.vue、selection.vue

	import Vue from 'vue'
	const eventBus = new Vue()
	export { eventBus }

layout.vue

	<template>
		<div @click="resetComponent">
		</div>
	</template>
	methods: {
		resetComponent() {
		eventBus.$emit('reset-component')
	}

selection.vue

	mounted() {
		eventBus.$on('reset-component', ()=> {
			this.isDrop = false
		})
	},
	methods: {
		toggleDrop(event){
			eventBus.$emit('reset-component')
			this.isDrop = !this.isDrop
		}
	)
5、使用element的messagebox和message时,刷新页面时弹出空的提示框

解决方式是将Vue.use(MessageBox)Vue.use(Message)改为Vue.component(MessageBox)Vue.component(MessageBox
6、美化选中框

	<label>
		<input type="checkbox" hidden />
		<span class="square"></span>
	</label>
<style>
.square {
  display: inline-block;
  vertical-align: middle;
  width: 14px;
  height: 14px;
  border-radius: 2px;
  border: 1px solid #999;
}  
input[type="checkbox"]:checked + .square:after {
    content: "";
    width: 14px;
    height: 14px;
    display: block;
    color: #202020;
    border-radius: 2px;
    text-align: center;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: 0 auto;
    z-index: 1;
}
input[type="checkbox"]:checked + .square:before {
    content: "";
    font-weight: bold;
    display: block;
    border-radius: 2px;
    text-align: center;
    width: 6px;
    height: 9px;
    border-right:#202020 solid 2px;
	border-bottom:#202020 solid 2px;
    transform:rotate(40deg);
    position: absolute;
    top: 1px;
    right: 0;
    left: 0;
    bottom: 0;
    margin: 0 auto;
    z-index: 2
}
input[type="checkbox"]:checked + .square {
    border: 1px solid transparent;
    background: #626262;
    position: relative;

}
</style>

7、word-wrap对长的不可分割的单词进行换行,word-wrap: break-word
8、边框图片:border-image: url(border.png) 30 30 round
9、用css写一个三角形
	width:: 0;
	height: 0;
	border-top: 30px solid transparent;
	border-left: 30px solid transparent;
	border-right: 30px solid transparent;
	border-bottom: 30px solid #333;
10、让页面字体遍布清晰、变细用css做

在window系统下没有作用,但在ios设备上起作用

	-webkit-font-smoothing: antialiased

11、flex布局中的几个属性

aign-items

	// flex-start: 起点对齐
	// flex-end: 终点对齐
	// center: 中点对齐
	// baseline: 第一行文字的基线对齐
	// stretch: 如果项目未设置高度或者为auto,将占满整个容器的高度
	.box {
		align-items: flex-start | flex-end | center | baseline | stretch
	}

align-self: 允许单个项目和其他项目不一样,可覆盖align-items

	.item {
		align-self: auto | flex-start | flex-end | center | baseline | stretch
	}

flex-shrink: 定义项目的缩小比例,默认1,如果空间不足,项目将缩小

	.item {
		flex-shrink: 2
	}
12、合理使用变量
  • 当设计稿中某一类元素都是用相同的字体大小,颜色,行高等样式属性时,可以将这些值存放在变量中
// sass
$direction: left;
// less
@direction: left;
  • css也存在原生变量:

    语法: --变量名

:root {
	--width: 100px;
	--height: 100px;
}
.button {
	width: calc(0.8 * var(--width));
	height: calc(0.8 * var(--height));
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2), 0 3px 8px rgba(0, 0, 0, 0.1);
}
13、解决多次点击相同路由报错问题
方法一:降低版本
	npm i vue-router@3.0 -s
方法二:在router的配置文件router/index.js中添加代码
	
const routerPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return routerPush.call(this, location).catch(error=> error)
}
方法三:捕获异常
	this.$router.push().catch(err => {
	})
方法四:补齐第三个参数
	this.$router.push(route,() => {}, (e) => {
	})
14、原生添加删除class样式
document.getElementsByTagName('body')[0].classList.add('fixedlayout')
    
document.getElementsByTagName('body')[0].classList.remove('fixedlayout')
15、encodeURIComponent()可以把字符串作为URI组件进行编码

在传递url的时候,如果出现空格这样的特殊字段,后台只会读取到空格前面的内容,后面的内容丢失,造成戴护具读取失败,但是如果用encodeURIComponent()包裹一下,那么这些特殊字符讲进行转移,这样就能读取成功了

16、img会在底部撑出4px大小的空白使用display: block或者vertival-align: bottom可以解决
17、如果UI设计的适配图可以自动适配屏幕大小不需要写自适应和大小
18、drop-shadow()

**注意:**这个函数类似于box-shadow属性 box-shadow属性是在元素的整个框后面创建一个矩形的阴影,而drop-shadow()是创建一个符合图像本身形状的阴影

	drop-shadow(16px 16px 10px black)
19、数组/对象更新 视图不更新

由于js的限制,vue不能检测数组的直接变动,以及对象的添加/删除

	arr:[1,2,3,4,5]
	obj: {
		a: 1,
		b: 2
	}

解决方式:
1、this.$set(你要改变的数组/对象,你要改变的位置/key,你要改成什么value)

	this.$set(this.arr, 0, '123')
	this.$set(this.obj, "c", "456")

2、数组原生方法触发视图更新,数组原生方法

	splice()、push()、pop()、shift()、unshift()、sort()、reverse()
20、filters的使用
	{{message | filterTest}}
	
	export default {
		data() {
			return {
				message: 1
			}
		},
		filters: {
			filtersTest(value) {
				if(value === 1) {
					return '最后输出的值'
				}
			}
		}
	}
21、style的scoped在组件中用js动态创建dom,添加样式不生效
	<template>
         <div class="test"></div>
    </template>
    <script>
        let a=document.querySelector('.test');
        let newDom=document.createElement("div"); // 创建dom
        newDom.setAttribute("class","testAdd" ); // 添加样式
        a.appendChild(newDom); // 插入dom
    </script>
    <style scoped>
	    .test{
	       background:blue;
	        height:100px;
	        width:100px;
	    }
	    .testAdd{
	        background:red;
	        height:100px;
	        width:100px;
	    }
    </style>

原因:
scoped只作用于当前组件中的元素,它会为组件中所有的标签和class样式添加一个scoped标识,动态添加的dom没有scoped添加的标志,没有跟testAdd的样式匹配起来,导致样式失效
解决方式
1、去掉该组件的scoped
2、动态添加style

newDom.style.height = '100px'
newDom.style.width =  '100px'
newDom.style.background = 'red'
22、绝对定位居中
position: absolute;
left: 50%;
tranform: translateX(-50%)
23、更改v-html渲染的标签样式

给包含v-html写上class名称,使用深度选择器更改样式,例如:

.test >>> * {
	color: #fff;
	test-align: left
}
24、设置prettier格式化末尾不适用分号

在settings.json中添加以下代码

 "vetur.format.defaultFormatterOptions": {
	  "prettier": {
           "semi": false
       }
  }
25、line-height

有时候会遇到设置了line-height之后发现文字并没有完全垂直居中对齐,这是怎么回事呢?这是因为不同的字体会有不同的默认字体行高,因此在字体大小、行高和文本框不变的情况下,更改字体也会导致文本对齐存在偏差
解决办法:css草案

	h1 {
		text-edge: cap alphabetic;
		leading-trim: both
	}
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有忆功能,能够捕捉数据的时间依赖性。 5. **长短期忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值