vue vs 微信小程序

vue 和微信小程序的区别

生命周期

√ vue 周期
vue:beforeCreate – created – beforeMount – mounted – beforeUpdate – updated – beforeDestory – destoryed
√ 小程序周期
WeChat:onLunch – onLoad – onShow(onHide\onUnLoad\onReady)

请求数据

vue 在 mounted 或 created 中请求数据
WeChatapp 在 onLoad 或 onShow 中请求数据

变量绑定

vue 的变量绑定在属性前加冒号
WeChatapp 的变量绑定用双大括号引用

列表渲染

vue 的列表渲染

<li v-for="(item,index) in dataList" :key="index">
  {{item.attr}}
</li>

WeChat 的列表渲染

<text wx:for="{{searchData}}" wx:key="index">
  {{ item }}
</text>
控制元素的显示与隐藏

vue 中使用 v-if、v-show 控制元素的显示与隐藏
WeChatapp 中使用 wx-if、hidden 控制元素的显示与隐藏

事件处理

vue 中使用 v-on:event 或 @event 来触发事件,使用 .stop 修饰符来阻止事件冒泡
WeChatapp 中使用 bindtap(bind+event) 或 catchtap(catch+event)(阻止事件冒泡) 来触发事件

数据的双向绑定

√ 设置值
vue 在表单中加一个 v-model,然后在 data 中设置相应的值,用 v-model 进行绑定(当表单元素内容发生变化时,data 中对应的值也会发生改变)
WeChatapp 当表单内容发生变化时,会触发表单元素上绑定的方法,在改方法中,通过 this.setData({key:value})来将表单的值赋值给 data 中对应的值,从而实现数据的双向绑定
√ 取值
vue 通过 this.demo 获取相应值
WeChatapp 通过 this.data.demo 获取相应值

绑定事件传参

vue 只需要在触发的方法中,将需要的参数作为形参传入即可
WeChatapp 不能直接在绑定事件的方法中传入参数。将参数作为属性值,绑定到元素的 data-属性上,然后在方法中通过 e.currentTarget.dataset.*来获取

<view bindtap="demoEvent" data-id="{{item.id}}">
Page({
  demoEvent(e){
    let id = e.currentTarget.dataset.id
  }
})
父子组件通信

(1)子组件的使用
√ vue
编写子组件
在父组件中通过 import 引入
在父组件的 components 中注册
在模板中使用(可传值、绑定事件、加 ref 标记)(子组件通过 props 接收参数,通过 e m i t 触 发 父 组 件 中 的 函 数 , 父 组 件 通 过 emit触发父组件中的函数,父组件通过 emitref 调用子组件中的内容)
√ WeChatapp
编写子组件
在子组件的 json 文件中,将该文件声明为组件

{
  "component": true
}

在需要引入的父组件的 json 文件中,在 usingComponents 填写引入组件的名称以及路径

{
  "usingComponents": {
    "movie-list": "/components/movie-list/index"
  }
}

在父组件中,直接引入即可
(2)父子之间的通信
√ vue 在父组件中,子组件通过 v-bind 传值;在子组件中,通过 props 接收,即可完成数据的传递
子组件和父组件通信可以通过 this. e m i t 将 方 法 和 数 据 传 递 给 父 组 件 父 组 件 想 要 调 用 子 组 件 的 方 法 , 给 子 组 件 加 一 个 r e f , 父 组 件 通 过 t h i s . emit 将方法和数据传递给父组件 父组件想要调用子组件的方法,给子组件加一个ref,父组件通过this. emitref,this.refs.ref 值可以调用子组件的任意方法
√ WeChatapp 父组件中,子组件引用处,直接将值赋值给一个变量;子组件通过 properties 接收传递的值
子组件和父组件通信用的和 vue 方法类似,通过 this.triggerEvent()将方法和参数传递给父组件
小程序通过给子组件添加 class 或者 id,然后调用子组件的方法:this.selectComponent(’#id’).methodName() 或者 this.selectComponent(’.class’).methodName()

onTap(event){
      const pid = this.properties.res.postId
      this.triggerEvent('posttap',{
        pid
      })
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值