码迷,mamicode.com
首页 > 移动开发 > 详细

uni-app

时间:2020-12-29 10:57:21      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:自定义事件   npm   com   style   组件   定义   scss   click   事件   

1.脚手架安装项目

npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-app
cd my-app
npm run dev:mp-weixin
小程序工具导入项目,注意:是mp-weixin的文件夹

2.样式与sass

width:750rpx   //小程序的单位,相当于屏幕的宽度
width:100vw   //H5的单位,相当于屏幕的宽度
width:100vh   //H5的单位,相当于屏幕的高度
npm  install  sass-loader  node-sass
<style lang="scss">
uni.scss文件中定义好的样式可以直接cv大法使用

3.新增页

"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "uni-app"
            }
        },
                {
            "path": "pages/index2/index2",
            "style": {
                "navigationBarTitleText": "数据展示" //标题改变
            }
        }
    ]
放在第一就是首页显示了,之后创建页面需要在pages.json引入

4.条件编译

v-if显示或隐藏,不适合做频繁的切换显示
v-show显示或隐藏,适合频繁的·切换显示
true的时候就是显示,fasle就是隐藏
v-if隐藏时是直接删除这个标签的
v-show隐藏式通过样式隐藏这个标签的

5.计算属性

加工用法
<
template> <view class="content"> <view>{{money}}</view> //10000 <view>{{nomoney}}</view> //¥10000 </view> </template> export default { data () { return { money: 10000 } }, computed: { nomoney () { return ‘¥‘ + this.money } } }
过滤用法
<
template> <view class="content"> <view v-for="(item, index) in list" :key="index"> <view>ID:{{item.id}};姓名:{{item.name}};年龄:{{item.age}}</view> //正常数组遍历 </view> <view v-for="(item, index) in filterlist" :key="index"> <view>ID:{{item.id}};姓名:{{item.name}};年龄:{{item.age}}</view> //过滤后数组遍历 </view> </view> </template> export default { data () { return { list: [ { id:0, name: ‘张三‘, age: 19 }, { id:1, name: ‘李四‘, age: 199 }, { id:2, name: ‘牛五‘, age: 1999 } ] } }, computed: { filterlist () { return this.list.filter(v => v.id <= 0) //只提取id<=0满足条件的 } } }

5.方法传参

<template>
    <view class="content">
        <view data-index=‘11‘ @click="hander(1, $event)">点我试试1</view> //¥event固定写法
        <view data-index=‘22‘ @click="hander(2, $event)">点我试试2</view>
    </view>
</template>

<script>
export default {
    methods: {
        hander (index, event) {
            console.log(index) //获取到直接通过函数传参的值
            console.log(event) //获取到不知道是什么的一个对象,但我们要的值藏在这里面
            console.log(event.currentTarget.dataset.index) //获取到标签自定义属性data-index的值
        }
    }
}
</script>

6.组件

import  组件  from @/components/组件

@绝对路径

跟Vue用法是一样的,props父传子参数和$emit子传父参数,

$emit用法:子组件触发事件发出,父组件监听事件接收

流程:子组件内部@click="funciton" funciton(){ this.$emit(‘自定义事件‘,要传递的参数) }

   父组件内部@自定义事件="funciton2" funciton2(e){ this.data = e} //e就是传递过来的参数

7.全局数据

App.vue文件中
<script>
    export default {
        onLaunch: function() {
            console.log(App Launch)
        },
        onShow: function() {
            console.log(App Show)
        },
        onHide: function() {
            console.log(App Hide)
        },
        globalData: { //定义全局数据
            base: www.360.com
        }
    }
</script>

调用数据的页面
<script>
export default {
    methods: {
        hander () {
            getApp().globalData.base //调用全局数据,getApp()固定函数
        }
    }
}
</script>

还有一种方法就是main.js文件内定义原型,this.  调用

8.插槽

先在组件内使用slot占位符,之后在组件标签内就可以加入想要的标签了
<my>
    <slot></slot>
</my>

9.生命周期

常用的几个生命周期
全局App中,onLaunch表示应用启动时
页面中,使用onLoad页面加载完毕;onShow页面显示时
组件中,mounted组件挂载完毕时

 

uni-app

标签:自定义事件   npm   com   style   组件   定义   scss   click   事件   

原文地址:https://www.cnblogs.com/black-eyes/p/14175807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!