mpvue常见问题总结,看看你有没有遇到(二)

 1.子组件给父组件传值

   a.先在子组件中定义事件,当触发这个事件后才开始传值



   b.当触发子组件中的事件后,使用$emit把传递事件名称和值给父组件,事件名称是自定义的



   c.父组件在页面子组件的模板上定义事件,名称是子组件传过来的名字


   d.获取子组件传递的值


2.绑定class,style样式(三元表表达式写法,经常会用到)


在项目中经常会遇到如图1,点击tab栏,当前点击的颜色其他的不变色,就免不了使用三元表达式写法


图1

这里的index,currIndex都是变量,通过判断他们两个是否相等,来决定tab栏的哪一项变色


mpvue常见问题总结,看看你有没有遇到(二)_第1张图片

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文件夹里面


mpvue常见问题总结,看看你有没有遇到(二)_第2张图片
图1

b.在项目的根目录里面里面有个App.vue,这个App.vue是全局的,也就是App.vue页面的style里面引入iconfont,,在页面的任何位置都可以直接使用


mpvue常见问题总结,看看你有没有遇到(二)_第3张图片


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是用户每次进入页面, 都会执行,无论是否点击返回,反正各有利弊吧


你可能感兴趣的:(mpvue常见问题总结,看看你有没有遇到(二))