uniapp构建微信小程序

这篇具有很好参考价值的文章主要介绍了uniapp构建微信小程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

脚手架搭建项目

1.全局安装
npm install -g @vue/cli
2.创建项目
vue create -p dcloudio/uni-preset-vue my-project
vue create -p E:\project\uni-preset-vue my-project
3.启动项目(微信小程序)
npm run dev:mp-weixin
4.微信小程序开发者工具导入项目
进入微信开发者工具,导入项目
E:\project\my-project\dist\dev\mp-weixin

项目结构介绍

项目目录

uniapp小程序创建,uni-app,微信小程序

数据展示

在js 的 data 中定义数据
在 template中通过{{ 数据}} 来显示
在标签的属性上通过 :data-index='数据’来使用

<template>
  <view class="content">
    <view>{{ msg }}</view>
    <view>{{ money }}</view>
    <view>{{ isRich }}</view>
    <view>{{ person.name }}</view>
    <view>{{ person.skill }}</view>
    <view :data-color="color">color</view>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        msg:"hello world",
        money:10000,
        isRich:false,
        person:{
          name:"小羊",
          skill:"吃草"
        },
        color: "aqua"
      }
    }
  }
</script>

数据循环

通过 v-for来指定要循环的数组
item 和 index 分别为 循环项 和 循环索引
:key 指定唯一的属性,用来提高循环效率

<template>
  <view 
    v-for="(item,index) in list" 
    :key="item.id"
  >
    {{item.text}}
  </view>
</template>

条件编译

通过v-if 来决定显示和隐藏 不适合做频繁的切换显示
通过 v-show来决定显示和隐藏 适合做频繁的切换显示

<template>
  <view v-if="true">v-if</view>
  <view v-show="true">v-show</view>
</template>

计算属性

可以理解为是对 data中的数据提供了一种加工或者过滤的能力
通过 computed 来定义计算属性

<template>
  <view>¥{{ money }}</view>
	<view> {{ cnMoney }}</view>
	<view v-for="item in filterList" :key="item.id">{{ item.text }}</view>
</template>

<script>
  export default {
		data() {
    	money:10000,
      list:[
        {
          id: 0,
          text: "apple"
        },
        {
          id: 1,
          text: "apple1"
        },
        {
          id: 2,
          text: "apple2"
        },
      ]
    },
    
    computed: {
      cnMoney(){
        return "¥" +this.money
      },
      filterList(){
        return this.list.filter(v => v.id <= 0)
      }
    },
  }
</script>

事件

注册事件 @click=“handleClick”
定义事件监听函数 需要在“methods”中定义
事件的传参

<template>
	<view class="content">
		<view @click="handelClick">点击我试试</view>
	</view>
</template>

<script>
	export default {
		methods: {
		  handelClick(){
				console.log('1+1=2')				
			}
		}
	}
</script>
<template>
  <view class="content">
    <view data-index="11" @click="handelClick(1,$event)">点击我试试1</view>
    <view data-index="22" @click="handelClick(2,$event)">点击我试试2</view>

  </view>
</template>

<script>
  export default {
    methods: {
      handelClick(index,event){
        console.log(index)    
        console.log(event)        
        console.log(event.currentTarget.dataset.index)        
      }
    }
  }
</script>

组件

  • 组件的定义

在src目录下新建 文件夹 components 用来存放组件
在 components 目录下直接新建组件*.vue

  • 组件的引入

在页面中引入组件“import 组件名 from’组件路径

  • 组件的注册

在页面中的实例中,新增属性 components
属性 components 是一个对象,把组件放进去注册

  • 组件的使用

在页面的标签中,直接使用引入的组件<组件></组件>

组件传递参数

父向子传递参数 通过 属性 的方式

父页面向子组件 ul-com 通过属性名 list 传递了一个数组数据
子组件 通过 props 进行接收 数据

子向父传递参数 通过 触发事件 的方式

子组件通过 触发事件 的方式向父组件传递数据
父组件通过 监听事件 的方式来接收数据

使用全局数据传递参数
通过 挂载 vue 的原型上

main.js
Vue.prototype.baseurl="www.yyqsdjc.cn"
引用:this.baseurl

通过 globalData 的方式

APP.vue
globalData:{base:"[https://yyqsdjc.netlify.app/"](https://yyqsdjc.netlify.app/")}
引用:getApp().globalData.text='base'

组件插槽

标签其实也是数据中的一种,想实现动态的给子组件传递 标签,就可以使用插槽 slot
通过slot 来实现占位符 <slot></slot>占位符

生命周期

uni-app框架的生命周期结合了 vue 和 微信小程序 的生命周期全局的APP中 使用 onLaunch 表示应用启动时【APP.vue】
页面中 使用 onLoad 或者 onShow 分别表示 页面加载完毕时 和 页面显示时【页面】
组件中 使用 mounted 组件挂载完毕时【组件】
完整的生命周期:
7.2 完整生命周期
uni-app https://uniapp.dcloud.io/frame?id=生命周期
vue https://cn.vuejs.org/v2/guide/instance.html?#生命周期
微信小程序 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html

分段器

分段器指的是 uni-ui 中的一个组件,其实就是我们俗称的 标签页,tab栏
使用:

// 使用
<template>
  <view>
		// 导航栏
		<view>
			<uni-segmented-control
				:values="items.map(v=>v.title)"
				:current="current"
				@clickItem="onClickItem"
				style-type="text"
				active-color="#d4237a"
			></uni-segmented-control>
		</view>
		// 项目
		<view class="content">
			<view v-if="current === 0">
				<home-recommend></home-recommend>
			</view>
			<view v-if="current === 1">
				<home-category></home-category>
			</view>
			<view v-if="current === 2">
				<home-new></home-new>
			</view>
			<view v-if="current === 3">
				<home-album></home-album>
			</view>
		</view>
	</view>
</template>

<!-- 引入+注册 -->
<script>
import { uniSegmentedControl } from "@dcloudio/uni-ui";
export default {
  components: {
    uniSegmentedControl
  },
  data() {
    return {
      items: [
        { title: "推荐" },
        { title: "分类" },
        { title: "最新" },
        { title: "专辑" } 
      ],
      current: 1
    };
  },
  methods: {
    onClickItem(e) {
      if (this.current !== e.currentIndex) {
        this.current = e.currentIndex;
      }
    }
  }
};
</script>

修改页面的标题

mounted(){
    // 修改页面的标题
    uni.setNavigationBarTitle({title:"最新"})
  }

轮播图

swiper
1 自动轮播 autoplay
2 指示器 indicator-dots
3 衔接轮播 circular
4 swiper 默认的高度 150px 默认宽度 750rpx 【一般要重置高度】
5 image 默认的宽度 320px 默认的高度 240px
6 计算图片 ( 要轮播的图片 ) 的宽度和高度的比例
7 把图片的比例也写到swiper标签样式
8 swiper-item 100%

<template>
  <view class="album_swiper">
      <swiper
        autoplay
        indicator-dots
        circular
      >
        <swiper-item
          v-for="item in banner"
          :key="item.id"
        >
          <image :src="item.thumb"></image>
        </swiper-item>
      </swiper>
    </view>
</template>

<style lang="scss" scoped>
  .album_swiper {
  swiper {
    // 750rpx 326.0869565217392
    // height: calc(750rpx / 2.3 );
    height: 326.1rpx;
    image {
      height: 100%;
    }
  }
}
</style>

moment.js处理时间格式

fromNow() 实现 显示 XXX月前
moment.locale(“zh-cn”)使用中文语言文章来源地址https://www.toymoban.com/news/detail-851828.html

<template>
  <view class="user_time">{{ imgDetail.cnTime }}</view>  //英文
</template>
<script>;
  import moment from "moment";
  moment.locale("zh-cn"); // 中文
  export default {
    onLoad()
      {
        this.imgDetail.cnTime=moment(this.imgDetail.atime*1000).fromNow();
      }
</script>

到了这里,关于uniapp构建微信小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WebStorm开发uni-app ,用vue2实现手机APP(apk) + 微信小程序多端项目开发方案 webstorm开发的uniapp + hbuilderx进行app 小程序打包

    我们主要分析了如下小程序开发框架,主要包括: 框架 技术栈 案例 微信小程序 支付宝小程序 百度小程序 头条小程序 H5 App uni-app Vue 丰富 ⭕ ⭕️ ⭕️ ⭕ ⭕️ ⭕ Taro React 丰富 ⭕ ⭕ ⭕ ⭕ ⭕ ⭕ wepy Vue 丰富 ⭕ ❌ ❌ ❌ ❌ ❌ mpvue Vue 丰富 ⭕ ❌ ❌ ❌ ⭕️ ❌  首先,就要排

    2024年02月11日
    浏览(69)
  • 微信小程序uni-app

    小程序 是一种不需要下载、安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下就能打开应用,也实现了用完即走的理念,用户不用安装太多应用,应用随处可用,但又无须安装卸载。 微信开发文档 1、工作原理 网页开发,渲染线程和脚本是互斥的

    2024年02月10日
    浏览(119)
  • 微信小程序授权(uni-app)

    概述 为了避免重复开发,自己封装了一个通用用户授权回调方法,只需要传入需要授权的scope,权限中文描述、回调函数,就可以实现一整套小程序是否授权、打开授权设置,调用后续操作函数的工作 功能 可以根据自己的实际应用进行微调 目前使用的uni-app版本,可以根据自

    2024年02月16日
    浏览(81)
  • 语法速通 uni-app随笔【uni-app】【微信小程序】【vue】

    其中, pages 目录/ index 目录【必有】: index.js 编写业务逻辑 【初始数据,生命周期函数】 index.json 编写配置 index.wxml 编写模板 【可理解为本页html】 index.wxss 【可理解为本页css】 直接输入敲回车,连尖括号都不需要就可以标签补全 1)初始数据写死 在 index.wxml 引入变

    2024年02月12日
    浏览(165)
  • uni-app 微信小程序 激励视频广告

    封装激励视频-Ad.js 调用上面写的方法:

    2024年02月12日
    浏览(77)
  • uni-app微信小程序使用echarts

    前言:本来是使用的ucharts,但因为无法监听图例点击交互,满足不了需求,所以只能放弃。 首先,下载echart组件。可以先随便建个文件夹,然后 npm init。接着下载依赖 然后找到 node_modulesmpvue-echarts下的文件,如图 只留下src,其他的删掉(没有用到)。然后复制 mpvue-echart

    2024年02月10日
    浏览(69)
  • 【uni-app微信小程序】实现支付功能

    实现微信支付功能需要在小程序后台配置支付相关信息,并且在前端代码中调用微信支付API进行支付操作。好的, uni-app微信小程序实现支付功能整体流程 大致如下: 注册微信公众平台,并完成开发者资质认证; 在微信商户平台注册商户账号,并完成商户资质认证; 在商户

    2024年02月13日
    浏览(95)
  • uni-app(微信小程序)获取当前位置uni.getLocation

     1、微信公众平台  开发  开发管理   2、开通之后到项目文件    3、下载腾讯地图插件并引入到文件中    

    2024年02月11日
    浏览(62)
  • uni-app嵌入微信小程序原生代码

    使用uni-app有时需要用到微信小程序原生代码 解析: uni-app项目结构跟原生小程序的项目结构有着不一致的区别,如果说开发过程中必须要使用原生代码,就需要把原生代码作为组件的方式在uni-app项目中引入使用 官网为了应对这一个需求,就给出了以下方法,供开发者实现 wxcompone

    2024年02月05日
    浏览(65)
  • [uni-app] 微信小程序 如何修改替换头像

     如下图所示,微信小程序中涉及到修改头像的交互 技术: 前端应用框架为uni-app UI框架为uView  思考: 1. 头像点击事件 click 2.从本地相册选择图片或使用相机拍照 uni.chooseImage(OBJECT) ,方法执行成功后根据success中返回的图片的本地文件路径列表 tempFilePaths,做操作 3.上传图片

    2024年02月11日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包