1.子组件给父组件传值
a.先在子组件中定义事件,当触发这个事件后才开始传值
b.当触发子组件中的事件后,使用$emit把传递事件名称和值给父组件,事件名称是自定义的
c.父组件在页面子组件的模板上定义事件,名称是子组件传过来的名字
d.获取子组件传递的值
2.绑定class,style样式(三元表表达式写法,经常会用到)
在项目中经常会遇到如图1,点击tab栏,当前点击的颜色其他的不变色,就免不了使用三元表达式写法
图1
这里的index,currIndex都是变量,通过判断他们两个是否相等,来决定tab栏的哪一项变色
3.获取textarea中的值
vue必须借助事件的 event 对象 的 currentTarget 才能获取事件对象
a.第一步
** 必须在事件中传递$event
b. 第二部getChange(e){
console.log(e)
}
** 打印e,可以获取到你动要的值
4.在mpvue中引入字体图标iconfont
a.先去iconfont官网下载你要的字体图标 http://www.iconfont.cn/
注意必须留如下图1的四个文件,其他的都可以删除,如果你只留下iconfont.css文件,其他的都删除,就会报错
然后把这个文件夹放到项目的static文件夹里面
图1
b.在项目的根目录里面里面有个App.vue,这个App.vue是全局的,也就是App.vue页面的style里面引入iconfont,,在页面的任何位置都可以直接使用
5.用npm下载的插件,和自己封装的插件,如何引用到自己的项目中?
a.如果是自己封装的插件,比如说自己封装的网络请http.js
在项目的根目录下的main.js中引入,具体如图1所示
注意:
*使用的是相对路径*
* 要绑定到vue的原生上面*
图1
因为这是全局的main.js,所以你可以直接在你要用的页面使用this.axios就可以获取到
b.如果使用npm下载的插件,
在项目的根目录下的main.js中直接引入,引入路径如图2所示,
注意:
*无需相对路径或绝对路径,直接写插件名字即可*
*调用的方法同其上*
图2
如果你只想某个页面需要使用那个插件,就无需引入到全局,只需在当前页面引入即可,如下所示important moment from 'moment'; //引入使用npm下载的
important http from '../utils/http' //引入自己封装的文件
6.mpvue中的created不是按需加载,而是一次性把所有页面的created都加载
最近发现一个棘手的问题,就是created
在vue中,created是按需加载,当我们进入某个页面,才会加载当前的created
在mpvue中,所有页面的created都是在页面渲染的一开始都一起加载出来
解决方法:使用mounted生命周期
弊端:小程序生命周期的onLoad,用户进入B页面,会触发onLoad,然后返回A页面,再进入B页面,不会触发onLoad
而mounted是用户每次进入页面, 都会执行,无论是否点击返回,反正各有利弊吧