前端-Vue基础2
1.过滤器
前台通过后台传值,要对后台传过来的变量进行特殊处理,比如根据id转成中文等;
1.1 局部过滤器
局部过滤器只针对一个Vue实例
默认将|左侧count传递给右侧方法
{{count|filterFunc}}
可以传多个参数
{{count|filterFunc("test")}}
func:function(value,test){
}
<body>
<div id="app">
{{count|change('百分比')}}
{{status|changeStatus}}
</div> <script src="js/vue.js"></script>
<script>
new Vue({
el:'#app',
data:{
msg:'test',
count:19,
status:1
},
filters:{
change:function (value,flag) {
console.log('value:',value)
console.log('flag:',flag)
return value+'%'
},
changeStatus:function (status) {
if(status==1){
return '成功'
}else if(status==2){
return '失败'
}
}
}
})
</script>
</body>
显示结果如图所示:
19% 成功
1.2 全局过滤器
全局过滤器可以针对所有的vue,只要引用都可以使用
Vue.filter('allNumber',function (value) {
return value + '&'
})
new Vue({
el:'#app',
data:{
msg:'test',
count:19,
status:1
}
})
<div id="app">
<div>{{count|allNumber}}</div>
</div>
2.vue的生命周期
vue的生命周期:是指vue实例化到页面经历了哪些步骤
钩子函数:预留了几个特殊的方法
<body>
<!--vue的生命周期:是指vue实例化到页面经历了哪些步骤-->
<!--钩子函数:预留了几个特殊的方法-->
<div id="app">
{{msg}}
</div>
<script src="js/vue.js"></script>
<script>
new Vue({
el:'#app',
data:{
msg:''
},
beforeCreate:function () {
//实例化后,数据还没有初始化
console.log('beforeCreate')
},
created:function () {
//数据初始化后
console.log('created')
},
beforeMount:function () {
//未和标签进行关联前
console.log('beforeMount')
},
mounted:function () {
//实例和标签进行关联后
//可以用来获取后台列表数据
this.msg='获取后台列表数据'
console.log('mounted')
},
beforeUpdate:function () {
//数据更新前
console.log('beforeUpdate')
},
updated:function () {
//数据更新后
console.log('updated')
}
})
</script>
</body>
3.$refs
this.$refs.test // 获取到标签 可以理解为 document.getElementbyID 获取的是标签对象
<body>
<div id="app">
<!-- 需求:点击子组件的数字,自增1,点击test按钮,父组件的值等于子组件的值相加-->
<test ref="a"></test>
<test ref="b"></test>
<div>父组件--<span>{{count}}</span></div>
<input type="button" value="test" @click="change">
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('test',{
template:'<div>子组件--<span @click="add">{{number}}</span></div>',
data:function () {
return{
number:0
}
},
methods:{
add:function () {
this.number++
}
}
}) new Vue({
el:'#app',
data:{
count:0
},
methods:{
change:function () {
//this.$refs.a = document.getElementById('a')
this.count = this.$refs.a.number+this.$refs.b.number
}
}
})
</script>
</body>
4.组件(复用代码,抽象公用代码)
组件:将公用的功能抽离出来,形成组件
目的:复用代码
4.1 全局组件
<body>
<div id="app">
<!-- 引用组件-->
<demo></demo>
<demo></demo>
<demo></demo>
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('demo',{
template:'<h1 @click="change">{{msg}}</h1>',
data:function () {
//组件中的data,必须是个方法
//如果引用了demo这个组件,就可以使用它的变量,如果是map形式的,改变了变量msg的值,其他组件的msg的值也会跟着该笔爱
//如果是data是一个方法,msg只作用域data这个方法,如果改变msg的值,其他组件的msg变量不会跟着改变
return {
msg:'msg'
}
},
methods:{
change:function () {
this.msg = 'test'
}
}
}) new Vue({
el:'#app'
})
</script>
</body>
4.2 局部组件
<body>
<div id="app">
<!-- 引用组件-->
<demo></demo>
<demo-key></demo-key>
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('demo',{
template:'<h1 @click="change">{{msg}}</h1>',
data:function () {
//组件中的data,必须是个方法
//如果引用了demo这个组件,就可以使用它的变量,如果是map形式的,改变了变量msg的值,其他组件的msg的值也会跟着该笔爱
//如果是data是一个方法,msg只作用域data这个方法,如果改变msg的值,其他组件的msg变量不会跟着改变
return {
msg:'msg'
}
},
methods:{
change:function () {
this.msg = 'test'
}
}
}) new Vue({
el:'#app',
components:{
"demo-key":{
template:'<h1 @click="change">{{count}}</h1>',
data:function () {
return{
count:0
}
},
methods:{
change:function () {
this.count++
}
}
}
}
})
</script>
</body>
4.3 is规避错误
多层标签封装为组件时,不能直接使用,要用is来规避组件渲染的错误
<body>
<div id="app">
<table border="1px">
<thead>
<th>id</th>
</thead>
<tbody>
<!-- 多层标签封装为组件时,不能直接使用,要用is来规避组件渲染的错误-->
<tr is="tr-demo"></tr>
<!-- <tr-demo></tr-demo>-->
</tbody>
</table>
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('tr-demo',{
template:'<tr><td>1111</td></tr>'
}) new Vue({
el:'#app'
})
</script>
</body>
前端-Vue基础2的更多相关文章
- [前端] VUE基础 (6) (v-router插件、获取原生DOM)
一.v-router插件 1.v-router插件介绍 v-router是vue的一个核心插件,vue+vue-router主要用来做SPA(单页面应用)的. 什么是SPA:就是在一个页面中,有多个页 ...
- 前端Vue基础学习
Vue基础 对与vue的简洁明了的干货分享,适合小白学习观看,如果有笔误或者想了解更多的,请给笔者留言,后续会继续分享,从零开始的vue相关经验 1.创建vue实例 <div id=" ...
- [前端] VUE基础 (9) (element-ui、axios、Vuex)
一.element-ui的使用 官方网页:https://element.eleme.cn/#/zh-CN 1.安装element-ui (venv) D:\pycharm_workspace\vue ...
- [前端] VUE基础 (8) (vue-cli脚手架)
一.安装vue-cli脚手架 官方文档:https://cli.vuejs.org/zh/guide/cli-service.html Vue CLI 的包名称由 vue-cli改成了 @vue/c ...
- [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)
一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...
- 前端-Vue基础3(父子组件交互)
1.子组件往父组件传值 点击子组件的值,子组件自增,父组件的值也跟着自增 通过:this.$emit('change')方法向父组件暴露事件,在子组件中引用,可以调用父组件的方法 点击子组件触发cli ...
- 前端-Vue基础1
Vue核心思想:只要改变数据,页面就会发生改变 1.引入vue 1.下载vue.js 2.在script标签的src属性中,引入vue.js <script src="js/vue.j ...
- 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)
目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...
- 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...
随机推荐
- IOS IAP 自动续订 之 利用rabbitmq延时队列自动轮询检查是否续订成功
启用针对自动续期订阅的服务器通知: - 官方地址: - https://help.apple.com/app-store-connect/#/dev0067a330b - 相关字段, 相关类型地址: ...
- 从单一图像中提取文档图像:ICCV2019论文解读
从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...
- 主成分分析法(PCA)原理和步骤
主成分分析法(PCA)原理和步骤 主成分分析(Principal Component Analysis,PCA)是一种多变量统计方法,它是最常用的降维方法之一,通过正交变换将一组可能存在相关性的变量数 ...
- Velodyne VLP-16激光雷达数据分析
Velodyne VLP-16激光雷达数据分析 Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破性重要功能:实时收发数据.360 度全覆盖.3D 距离测量以及校 ...
- 1-3. SpringBoot基础,Java配置(全注解配置)取代xml配置
最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持. 这节讲一下SpringBoot的学习必须的一些基础,Java配置.其实在Spring2.0时代就已 ...
- SpringBoot注解 + 详解
可以使用Ctrl + F搜索,也可以右侧目录自行检索 @SpringBootApplication 包含了@ComponentScan.@Configuration和@EnableAutoConfig ...
- 谈谈stream的运行原理
害,别误会,我这里说的stream不是流式编程,不是大数据处理框架.我这里说的是stream指的是jdk中的一个开发工具包stream. 该工具包在jdk8中出现,可以说已经是冷饭了,为何还要你说?只 ...
- 2、java基础语法(上):变量与运算符
关键字与保留字 关键字 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 官方地址:https://docs.oracle.com/javase/tut ...
- Java源码详解系列(十二)--Eureka的使用和源码
eureka 是由 Netflix 团队开发的针对中间层服务的负载均衡器,在微服务项目中被广泛使用.相比 SLB.ALB 等负载均衡器,eureka 的服务注册是无状态的,扩展起来非常方便. 在这个系 ...
- 全面解析Pytorch框架下模型存储,加载以及冻结
最近在做试验中遇到了一些深度网络模型加载以及存储的问题,因此整理了一份比较全面的在 PyTorch 框架下有关模型的问题.首先咱们先定义一个网络来进行后续的分析: 1.本文通用的网络模型 import ...