VUE-2.X学习笔记day5

1.过渡&动画

1.vue动画的理解

  1. 操作css的trasition 或者 appimation
  2. vue会给元素添加/移除特定的class
  3. 过渡的相关类名
    1. xxx-enter-active:指定显示的transition
    2. xxx-leave-active:指定隐藏的transiton
    3. xxx-enter/xxx-leave-io:指定隐藏时的样式

2.理解图

在这里插入图片描述

3.代碼

  1. html
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			/**
			 * 指定显示/隐藏的过渡效果
			 * */
			.hello-enter-active, .hello-leave-active{
				transition: opacity 1s;
			}
			/**
			 * 指定隐藏时的样式
			 */
			.hello-enter, .hello-leave-to{
				opacity: 0;
			}
			/**
			 * //显示的过渡效果
			 * */
			.move-enter-active{
				transition: all 1s; 
			}
			/**
			 * 消失的过度效果
			 * */
			.move-leave-active{
				transition: all 3s;
			}
			/**
			 * //隐藏时的过渡效果
			 * */
			.move-enter , .move-leave-to{
				opacity: 0;
				transform: translateX(20px);
			}
		</style>
	</head>
	<body>
		<div id="app">
			<button @click="isShow=!isShow">toggle1</button>
			<transition name="hello">
				<p v-show="isShow">hello</p>
			</transition>
		</div>
		<div id="app2">
			<button @click="isShow2=!isShow2">toggle2</button>
			<transition name="move">
				<p v-show="isShow2">hello2</p>
			</transition>
		</div>
	</body>
	<script src="/vueDemo/vue/vue.js"></script>
	<script src="demo1.js"></script>
</html>

  1. js
const vm = new Vue({
 	el: "#app",
 	data : {
 		isShow: true,
 	}
 })
 
const vm2 = new Vue({
 	el: "#app2",
 	data : {
 		isShow2: true,
 	}
 })

  1. 前端
    在这里插入图片描述

2.过滤器

Demo过滤时间

  1. html
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<h2>显示格式化的时间</h2>
			<p>{{date}}</p>
			<p>完整版:{{date | dateString}} </p>
			<p>年月日:{{date | dateString("YYYY-MM-DD")}} </p>
			<p>时分秒:{{date | dateString("HH:mm:ss")}} </p>
		</div>
	</body>
	<script src="../../../vue/vue.js"></script>
	<script src="../../../common/moment.js"></script>
	<script src="demo2.js"></script>
</html>

  1. js
//自定义过滤器
// Vue.filter("dateString",function(value,format){
// 	return moment(value).format(format || "YYYY-MM-DD HH:mm:ss");
// });

Vue.filter("dateString",function(value,format="YYYY-MM-DD HH:mm:ss"){
	return moment(value).format(format);
});

const vm=new Vue({
	el:"#app",
	data:{
		date:new Date(),
	},
	mounted() {
		setInterval(()=>{
			this.date=new Date();
		},1000)
	}
});
  1. 展示效果
    在这里插入图片描述

2.指令

指令属性在解析之前是存在的,在解析之后消失

常用内置指令

  1. v:text:更新元素的 textConteng
  2. v-html:更新元素的innerHTML
  3. v-if:如果为true,当前标签才会输出到页面上
  4. v-else:如果v-if的值为false.当前标签才会输出到页面上
  5. v-show:通过display样式来控制显示/隐藏
  6. v-for:用来遍历数组或者对象
  7. v-on:绑定时间监听 简写@
  8. v-bing: 绑定,或者直接使用 冒号
  9. v-model:数据绑定
  10. ref:指定唯一标识,vue对象通过$els属性访问这个对象
  11. v-cloak:防止闪现,与css配合:[v-cloak]{display:none}

代码

js

const vm = new Vue({
	el: "#app",
	data:{
		msg:"Rain",
	},
	methods:{
		alter(){
			alert(this.$refs.PR.textContent);
		}
	}
})

html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			/**
			 * 
			 [v-cloak]属性选择器
			 */
			[v-cloak]{
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<p ref="PR">Rain</p>
			<button @click="alter">提示</button>
			<p v-text="msg"></p>
			<p v-cloak>{{msg}}</p>
		</div>
	</body>
	<script src="../../../vue/vue.js"></script>
	<script src="demo3.js"></script>
</html>

自定义指令

  1. 全局指令
Vue.directive('my-directive',.function(el,binding){
		el.innerHTML =binding.value.toupperCase();
	})
  1. 局部指令
directive:{
		'my-directive':{
			bind(el,binding){
				el.innerHtml =binding.value.toupperCase(); 
			}
		}	
	}

3.使用指令

 v-my-directive=''

代码

html代码

	<div id="app1">
			<p v-upper-text="msg1"></p>
			<p v-lower-text="msg1"></p>
		</div>
		<div id="app2">
			<p v-upper-text="msg2"></p>
			<p v-lower-text="msg2"></p>
		</div>

js代码

//定义全局指令
//el 指令所在标签对象
//binding 包含指令相关信息数据的对象
Vue.directive('upper-text',function(el,binding){
	el.textContent=binding.value.toUpperCase();
})

new Vue({
	el:"#app1",
	data:{
		msg1:"aaBBccDDeeFFggHH"
	},
	directives:{//注册局部指令,只在当前示例中可用
		'lower-text'(el,binding){
			el.textContent=binding.value.toLowerCase();
		}
	}
})

new Vue({
	el:"#app2",
	data:{
		msg2:"I Love Rain By Study"
	}
})

页面效果
在这里插入图片描述

`vue-loader.conf.js` 是一个用于配置 Vue 单文件组件加载器(vue-loader)的配置文件。它一般用于 Vue CLI 2.x 中的 webpack 配置。 在 Vue 项目中,`.vue` 文件是一种特殊的文件类型,包含了模板、脚本和样式等组件相关代码。为了能够在 webpack 构建过程中解析和处理这些 `.vue` 文件,我们需要使用 vue-loader。 `vue-loader.conf.js` 文件中的配置项会被用于 vue-loader 的加载过程,以定义如何解析和转换 `.vue` 文件中的各个部分。 下面是一个简单的 `vue-loader.conf.js` 示例: ```javascript // vue-loader.conf.js module.exports = { loaders: { css: 'vue-style-loader!css-loader', scss: 'vue-style-loader!css-loader!sass-loader' // 其他加载器配置... } }; ``` 在上述示例中,我们定义了 `css` 和 `scss` 两个加载器的配置。这些配置会告诉 vue-loader 如何处理 `.vue` 文件中的样式部分。 注意,以上示例中的加载器配置是基于 webpack 1.x 的写法。在 webpack 2.x 或更高版本中,可以使用 `rules` 或 `module.rules` 来定义加载器规则。例如: ```javascript // vue-loader.conf.js module.exports = { rules: [ { test: /\.css$/, use: [ 'vue-style-loader', 'css-loader' ] }, { test: /\.scss$/, use: [ 'vue-style-loader', 'css-loader', 'sass-loader' ] } // 其他加载器规则... ] }; ``` 在上述示例中,我们使用 `rules` 定义了两个加载器规则,分别用于处理 `.css` 和 `.scss` 文件。 `vue-loader.conf.js` 中的配置还可以包括其它一些选项,如预处理器的配置、CSS Modules 的开启等。具体配置项可以参考 vue-loader 的文档。 总之,`vue-loader.conf.js` 是一个用于配置 vue-loader 的文件,用于定义如何解析和处理 Vue 单文件组件中的各个部分。在 Vue CLI 2.x 中,它被用作 webpack 配置文件的一部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值