前端-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) 前 ...
随机推荐
- 项目记事【Git】:git pull 出错 error: cannot lock ref 'refs/remotes/origin/feature/hy78861': is at d4244546c8cc3827491cc82878a23c708fd0401d but expected a6a00bf2e92620d0e06790122bab5aeee01079bf
今天 pull 代码的时候碰到以下问题(隐去了一些公司敏感信息): XXX@CN-00012645 MINGW64 /c/Gerrard/Workspace/XXX (master) $ git pu ...
- SparkCore之业务操作逻辑
在上spark的时候,一开始需要虚拟机模拟真实环境,而spark主要的三种模式:local.standalone.yarn 均可以通过虚拟机模拟. 这里要讨论的是业务逻辑如何和 spark 结合,具体 ...
- 全景分割:CVPR2019论文解析
全景分割:CVPR2019论文解析 Panoptic Segmentation 论文链接: http://openaccess.thecvf.com/content_CVPR_2019/papers/ ...
- TensorFlow创建DeepDream网络
TensorFlow创建DeepDream网络 Google 于 2014 年在 ImageNet 大型视觉识别竞赛(ILSVRC)训练了一个神经网络,并于 2015 年 7 月开放源代码. 该网络学 ...
- fiddler选项卡-Statistc(统计)
Statistc Statistc是fiddler用来对session列表里的Session相关情况的统计,利用这个选项,可以对请求进行性能以及其他数据分析 1.界面 2.参数详解 建议:打开fidd ...
- spring整合mybatis,ioc容器及声明式事务配置
步骤: 1.创建jdbc.properties文件,用来管理存放连接数据库的相关信息 jdbc.properties:jdbc.user=root jdbc.password=123456 jdbc. ...
- 【Android编程】Java利用apktool编写Metasploit恶意后门注入工具
/声明:本文作者Kali_MG1937 csdn博客id:ALDYS4 QQ:3496925334 未经许可禁止转载!/ 注意,本文为作者从CSDN搬迁至此的文章 注意!此文章虽然 未被 作者标记到 ...
- Redis源码解析之跳跃表(三)
我们再来学习如何从跳跃表中查询数据,跳跃表本质上是一个链表,但它允许我们像数组一样定位某个索引区间内的节点,并且与数组不同的是,跳跃表允许我们将头节点L0层的前驱节点(即跳跃表分值最小的节点)zsl- ...
- 孟老板 Paging3 (一) 入门
BaseAdapter系列 ListAdapter系列 Paging3 (一) 入门 Paging3 (二) 结合 Room Paging3 (一) 入门 前言: 官方分页工具, 确实香. 但 ...
- 「模拟8.23」阴阳 DP
对于此题的性质我们考虑DP 分四种情况 黑色块在右侧单调降,单调升 还有在左侧 另外我们这样可能会记重,所以还要将重复记过的也就是边界线是横的和竖的 然后还要将全白全黑加上 1 #include< ...