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的更多相关文章

  1. [前端] VUE基础 (6) (v-router插件、获取原生DOM)

    一.v-router插件 1.v-router插件介绍 v-router是vue的一个核心插件,vue+vue-router主要用来做SPA(单页面应用)的. 什么是SPA:就是在一个页面中,有多个页 ...

  2. 前端Vue基础学习

    Vue基础 对与vue的简洁明了的干货分享,适合小白学习观看,如果有笔误或者想了解更多的,请给笔者留言,后续会继续分享,从零开始的vue相关经验 1.创建vue实例 <div id=" ...

  3. [前端] VUE基础 (9) (element-ui、axios、Vuex)

    一.element-ui的使用 官方网页:https://element.eleme.cn/#/zh-CN 1.安装element-ui (venv) D:\pycharm_workspace\vue ...

  4. [前端] VUE基础 (8) (vue-cli脚手架)

    一.安装vue-cli脚手架 官方文档:https://cli.vuejs.org/zh/guide/cli-service.html Vue CLI 的包名称由 vue-cli改成了  @vue/c ...

  5. [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)

    一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...

  6. 前端-Vue基础3(父子组件交互)

    1.子组件往父组件传值 点击子组件的值,子组件自增,父组件的值也跟着自增 通过:this.$emit('change')方法向父组件暴露事件,在子组件中引用,可以调用父组件的方法 点击子组件触发cli ...

  7. 前端-Vue基础1

    Vue核心思想:只要改变数据,页面就会发生改变 1.引入vue 1.下载vue.js 2.在script标签的src属性中,引入vue.js <script src="js/vue.j ...

  8. 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)

    目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...

  9. 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

随机推荐

  1. JAVA并发(5)-并发队列LinkedBlockingQueue的分析

    本文介绍LinkedBlockingQueue,这个队列在线程池中常用到.(请结合源码,看本文) 1. 介绍 LinkedBlockingQueue, 不支持null,基于单向链表的可选有界阻塞队列. ...

  2. 固态LiDAR,半固态混合LiDAR,机械LiDAR

    固态LiDAR,半固态混合LiDAR,机械LiDAR 1. APD/SPAD 2轴MEMS扫描镜+ SPAD图像传感器在混合固态LiDAR中的应用 APD的工作模式分为线性模式和盖革模式两种.当APD ...

  3. Mobileye 自动驾驶策略(二)

    Mobileye 自动驾驶策略(二) 与多方都成功进行了合作,其中比较大型的合作包括法雷奥.百度和中国 ITS. 法雷奥是最近的的 Tier 1 合作伙伴,法雷奥和 Mobileye 签署协议,表示未 ...

  4. CUDA 11功能展示

    CUDA 11功能展示 CUDA 11 Features Revealed 新的NVIDIA A100 GPU基于NVIDIA安培GPU架构,实现了加速计算的最大一代飞跃.A100 GPU具有革命性的 ...

  5. Hadoop 数据迁移用法详解

    数据迁移使用场景 冷热集群数据分类存储,详见上述描述. 集群数据整体搬迁.当公司的业务迅速的发展,导致当前的服务器数量资源出现临时紧张的时候,为了更高效的利用资源,会将原A机房数据整体迁移到B机房的, ...

  6. pytest skip的使用

    skip跳过用例(无条件跳过,不运行用例) 使用方法: 1.使用跳过装饰器 class TestClass(): @pytest.mark.skip(reason='no way of current ...

  7. Python 机器学习实战 —— 监督学习(上)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

  8. Task02:基础查询与排序

    2.1 SELECT语句基础 2.1.1 从表中选取数据 SELECT语句 从表中选取数据时需要使用SELECT语句,也就是只从表中选出(SELECT)必要数据的意思.通过SELECT语句查询并选取出 ...

  9. C#中怎样使控件随着窗体一起变化大小

    此文原作者为CSDN的 zhouwen5288,原文链接  http://blog.csdn.net/zhouwen5288/article/details/6493835 本人仅作为随笔备忘,转载请 ...

  10. 渗透测试工具Burpsuite操作教程

    Burpsuite简介 Burp Suite 是一款专业的Web和移动应用程序渗透测试工具,是用于攻击web 应用程序的集成平台,包含了许多工具.Burp Suite为这些工具设计了许多接口,以加快攻 ...