前端-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) 前 ...
随机推荐
- centos ping命令找不到服务
1 首先 添加dns服务器 vi /etc/resolv.conf 在文件中添加如下两行: nameserver 8.8.8.8 nameserver 8.8.4.4 保存退出,重启服务器.之后再pi ...
- MongoDB学习笔记:MongoDB 数据库的命名、设计规范
MongoDB学习笔记:MongoDB 数据库的命名.设计规范 第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...
- Selenium 库的基本用法
Selenium库的基本使用 1.基本使用 from selenium import webdriver from selenium.webdriver.common.by import By f ...
- 记录: 解决 pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)
- Mac 不知道怎么操作的 rm 了 usr/local/ 里面的某些文件, 导致一直出现 pycurl: libcurl link-time ssl backend (openssl) is di ...
- pytest - 打标记:mark功能
对用例打标记,运行的时候,只运行打标记的用例.如冒烟测试 打标记步骤 1.先注册标记名 在配置文件:pytest.ini 注册标记名,注意必须是这个文件名 标签名加冒号后面可以写说明,必须是英文 2. ...
- 安装 error: Microsoft Visual C++ 14.0 is required 解决方案
最近写的项目需要用到Python的第三方库,比如:mmh3, pyshark等等,而直接pip install ... 会报错:error: Microsoft Visual C++ 14.0 is ...
- 35 张图带你 MySQL 调优
这是 MySQL 基础系列的第四篇文章,之前的三篇文章见如下链接 138 张图带你 MySQL 入门 47 张图带你 MySQL 进阶!!! 炸裂!MySQL 82 张图带你飞 一般传统互联网公司很少 ...
- Java网络编程实践
网络编程的目的 无线电台......传播交流信息,数据交换.通信 想要达到这个效果需要什么: 1. 如何准确的定位网络上的第一台主机 192.168.16.124:端口,定位到这个计算机上的某个资源. ...
- NX二次开发-向量乘矩阵的几何意义
函数:UF_MTX3_vec_multiply_t() 或者UF_MTX3_vec_multiply().推荐使用UF_MTX3_vec_multiply_t() 函数说明:将向量按照矩阵进行变换:绝 ...
- 【VBA】读取配置文件存入字典型变量中
配置文件: 源码: Dim Co As Object '设为全局变量 Function 读取cfg() As Boolean Dim strcfg As String strcfg = " ...