vue随记
(一)使用props传值:
<HeadTitle name-data="100"></HeadTitle>
props:['nameData']
父组件传递复合名称数据时使用小写和中划线(-) 组合,子组件接收复合名称数据时使用小驼峰。
(二)路由去 “#”
路由配置:
mode:'history'
(三)路由跳转后回到页面的顶部
路由配置:
scrollBehavior () {
return { x: 0, y: 0 }
}
(四)重定向
‘重定向’指,用户访问 '/a' 路径时,url会被替换成 '/b' 。
{
path:'/a',
redirect:'/b'
}
重定向至某个子路由:
{
path:'/list',
name:'list'
children:[
{
path:'/list',
redirect:'aa',
},
{
path:'aa',
name:'a',
component:A
},
{
path:'bb',
name:'b',
component:B
}
]
}
(五)watch监控复合数据下面的某个属性
data(){
return{
opt:{
a:1,
b:'abc'
}
}
}
watch:{
"opt.b"(){
// code
},
"$route"(){
// 路由监控
}
}
(六)watch深层监控
watch:{
name:{
handler(){
// code
},
deep:true
}
}
(七)vue兼容IE
因为Vue使用了ES6 Promise,而IE浏览器不支持,解决方法是: 使用babel-polyfill转换
$ npm install --save-dev babel-polyfill
如果使用vue-cli项目,在build/webpack.base.js中添加:
require('babel-polyfill');
entry: { app: ['babel-polyfill','./src/main.js'] },
(八)watch的简便写法
组件创建的时获取一次列表,同时监听data中数据变化,每当发生变化的时候重新获取一次筛选后的列表。
常规写法:
data(){ // data
return{
list:[1,2,3]
}
},
methods:{
editList(){ // 定义对list数据处理的方法。
// 编辑list
}
},
created(){ // 组件创建时处理list数据
this.editList();
},
watch:{
list:{ // 监控list变化重新编辑一次处理list
handler(){
this.editList();
}
}
}
优化写法:
data(){ // data
return{
list:[1,2,3]
}
},
methods:{
editList(){
// 编辑list
}
},
watch:{
list:{ // 首先,在watchers中,可以直接使用函数的字面量名称;其次,声明immediate:true表示创建组件时立马执行一次。
handler:"editList", // 直接使用函数的字面量名称
immediate:true // 表示创建组件时立马执行一次,即:created时期执行一次
}
}
(九)页面加载完成立即执行事件
data(){
list:[]
},
watch:{
"list"(){
this.$nextTick(){
// DOM更新完成,执行事件
}
}
}
(十)set / delete
1、对vue中复合数据 [ Array || Object ] 的设置做到响应使用vue内置方法set
this.$set(目标数据,键名,键值) / Vue.set(目标数据,键名,键值);
键名存在就修改,不存在就添加。
2、删除vue中复合数据中的某个值
Vue.delete(目标数据,健名) / this.$delete(目标数据,健名) ;
(十一)v-cloak vue隐藏元素直至当前实例准备完成才编译
这个指令保持在元素上直到关联实例结束编译。需配合CSS使用
css:
[v-cloak] {
display: none;
}
template:
<div v-cloak>
{{ message }}
</div>
<!--当前div内对vue的编译会等到实例准备完成后开始-->
(十二)vue-cli打包上线
(十三)路由别名
‘别名’指,用户访问 '/b' 路径时,url依旧是 '/b' ,但匹配到的视图是 '/a' 路由的匹配视图,如同访问 '/a' 路由一样。
{
path:'/a',
alias:'/b'
}
(十四)数据还原状态
1、初始化时设置的数据:
data(){
num:1,
list:[],
opt:{}
}
2、经过处理后数据 this.num,this.list,this.opt 状态
3、使用初始化状态的数据
可使用 this.$options.data() 拿到最初的状态。
示例: Object.assign( this.form , this.$options.data().form );
(十五)在vue-cli项目中使用markdown编辑器:Vue-SimpleMDE
1、npm install vue-simplemde --save
2、// 全局引用
(十六)$nextTick
1、$nextTick(() => {}) 与DOM相关操作写在该函数回调中,确保DOM已渲染。
2、在created()钩子函数进行DOM操作一定要放在Vue.nextTick()的回调函数中。(原因:在created()执行时DOM 其实并未进行任何渲染,此时进行DOM操作是获取不到DOM元素,所以一定要将DOM操作的代码放进Vue.nextTick()的回调函数中,确保此时DOM已渲染。)
vue随记的更多相关文章
- Vue折腾记 - (3)写一个不大靠谱的typeahead组件
Vue折腾记 - (3)写一个不大靠谱的typeahead组件 2017年07月20日 15:17:05 阅读数:691 前言 typeahead在网站中的应用很多..今天跟着我来写一个不大靠谱的ty ...
- Vue折腾记 - (2)写一个不大靠谱的面包屑组件
先看效果图 我把页面标题和面包屑封装到一起..就不用涉及到组件的通讯了,不然又要去监听路由或者依赖状态去获取 这里写图片描述 疑惑解答: 点击父(也就是折叠菜单)为什么会跑到子菜单第一个 因为我第一个 ...
- vue项目中路由验证和相应拦截的使用
详解Vue路由钩子及应用场景(小结):https://www.jb51.net/article/127678.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/ ...
- WEB前端学习资源清单
常用学习资源 JS参考与基础学习系列 [MDN]JS标准参考 es6教程 JS标准参考教程 编程类中文书籍索引 深入理解JS系列 前端开发仓库 <JavaScript 闯关记> JavaS ...
- [转] WEB前端学习资源清单
常用学习资源 JS参考与基础学习系列 [MDN]JS标准参考 es6教程 JS标准参考教程 编程类中文书籍索引 深入理解JS系列 前端开发仓库 <JavaScript 闯关记> JavaS ...
- Javascript的学习清单
Javascript的学习清单 Javascript学习资源 程序员必读书籍 深入理解JavaScript系列 es6教程 jQuery中文文档 vue官网 zeptojs中文版 常用的插件与UI组件 ...
- vue踩坑记
vue踩坑记 易错点 语法好难啊qwq 不要把'data'写成'date' 在v-html/v-bind中使用vue变量时不需要加变量名 在非vue事件中使用vue中变量时需要加变量名 正确 < ...
- 【转】Vue 脱坑记 - 查漏补缺(汇总下群里高频询问的xxx及给出不靠谱的解决方案)
前言 文章内容覆盖范围,芝麻绿豆的破问题都有,不止于vue; 给出的是方案,但不是手把手一字一句的给你说十万个为什么! 有三类人不适合此篇文章: “喜欢站在道德制高点的圣母婊” – 适合去教堂 “无理 ...
- Vue 脱坑记
问题汇总 Q:安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本 /* cnpm website: https://npm.taobao.org/ */ ...
随机推荐
- Spring对Controller、Service、Dao进行Junit单元测试总结
测试类注解 @RunWith(SpringRunner.class) @SpringBootTest(classes={DemoApplication.class}) 以Controller层的的单元 ...
- Nginx搭建与相关配置
目录 一.Nginx简介 1.1 概述 1.2 Nginx与Apache的差异 二.编译安装Nginx服务 2.1 将nginx软件包传到主机/opt目录下 2.2.安装依赖包 2.3.添加模块编译安 ...
- git连接远程GitHub仓库详细总结 for HTTPS协议
简单唠叨几句哈.之前工作的时候,由于是在大厂,代码提交.版本管理都是多人协作的,所以公司当时用的git + gerrit来实现代码管理的.当时入职时并不懂git的使用,虽然有大神写好配置git的文档, ...
- java.lang.instrument.Instrumentation
java.lang.instrument.Instrumentation 看完文档之后,我们发现这么两个接口:redefineClasses和retransformClasses.一个是重新定义cla ...
- Linux 文件目录管理的指令
1.知识点:绝对路径:写法从/(根目录开始) /usr/share/doc 相对路径:不从/开始 如cd ../man 如果清楚文件夹内部情况,建议使用相对路径在文件夹之间跳转,而不用绝对路径,每次 ...
- anaconda的报错:Anaconda:There is an instance of anaconda navigator already running error
anaconda的报错:Anaconda:There is an instance of anaconda navigator already running error 出现这个问题的时候人蒙了,主 ...
- 从零开始实现简单 RPC 框架 3:配置总线 URL
URL 的定义 URL 对于大部分程序猿来说都是很熟悉的,其全称是 Uniform Resource Locator (统一资源定位器).它是互联网的统一资源定位标志,也就是指网络地址. 一个标准的 ...
- SQL Server 判断数据库中是否存在表
使用场景 可以反复的执行相同脚本 方式1:查询sysobjects表 if EXISTS (SELECT * from sysobjects WHERE name='test_table') DROP ...
- 黑马JVM教程——自学笔记(二)
三.垃圾回收 3.1.如何判断对象可以回收 3.1.1 引用计数法 弊端:循环引用时,两个对象的计数都为1,导致两个对象都无法被释放 3.1.2 可达性分析算法 JVM中的垃圾回收器通过可达性分析来探 ...
- [转]C# 互操作性入门系列(三):平台调用中的数据封送处理
参考网址:https://www.cnblogs.com/FongLuo/p/4512738.html C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列( ...