一路繁花似锦绣前程
失败的越多,成功才越有价值

导航

 

uniapp(vue3-ts)入门

一、安装

1、启动
# 最好使用hbuilderx开发
# 需要用到的插件会自动安装,比如:sass插件(dart-sass编译)、ts插件(typescript语言服务)
# vite暂不支持微信小程序,vue3的template暂不支持多标签
npx degit dcloudio/uni-preset-vue#vite-ts 项目名
npm i
npm run 脚本
2、代码格式化风格修改
a、缩进为2
    工具->设置->常用配置->制表符长度:2
b、import大括号不换行
    工具->设置->插件配置->自定义jsbeautify格式化规则->"brace_style": "collapse,preserve-inline"

二、知识点

1、规范
* 页面文件遵循Vue单文件组件规范
* 组件标签靠近小程序规范
* 接口能力(JS API)靠近微信小程序规范
* 数据绑定及事件处理使用Vue.js规范
2、条件编译
条件编译写法 说明
#ifdef APP-PLUS
代码
#endif
仅在app平台下的代码
#ifndef H5
代码
#endif
除了h5平台下的代码
#ifdef H5 || MP-WEIXIN
代码
#endif
在h5或小程序平台下的代码
3、目录结构
目录 作用
pages 页面存放目录
static 静态文件资源目录
App.vue 应用入口文件和小程序app.js类似
main.js 应用入口文件,注册vue等
manifest.json 项目配置
pages.json 页面配置
-------- --------
common 存放公用的文件
components 自定义组件目录
store vuex目录
unpackage 编译后的文件存放目录
4、模板语法
a、指令
v-bind:可以简写成:,组件属性要使用data(推荐函数方式定义)中定义的数据变量。
        或者组件属性要是使用表达式,要使用v-bind指定
v-on:可以简写成@绑定事件
v-model:数据双向绑定
v-if:条件判断,决定某个内容或者区块是否挂载
v-show:条件判断,是否显示
v-for:列表渲染
b、标签
uniapp vue
view div
text span
image img
block template(非.vue文件的根标签)
c、单位
* 可以使用微信小程序单位:屏幕宽度(750rpx)
d、模板
<template>
	<view class="view-style">
		<text class="text-color">{{ title }}</text>
		<button @click="clickHandle">按钮</button>
	</view>
</template>

<!-- 支持setup语法糖,但是暂时还不怎么好用 -->
<script lang="ts">
	// @表示是在src目录下(main.js所在目录),引入的ts文件后缀名可省略
	import { parseTime } from "@/common/utils"
	import { defineComponent, ref } from 'vue';

	export default defineComponent({
		setup() {
			const title = ref('Hello')

			const clickHandle = function() {
				console.log(title.value = parseTime(new Date()))
			}

			return {
				title,
				clickHandle
			}
		}
	});
</script>

<style lang="scss" scoped>
	.view-style {
		width: 375rpx;
	}

	.text-color {
		// uni.scss全局样式文件,无需@import导入
		color: $uni-color-primary;
	}
</style>
e、自定义组件
  • main.js
import App from './App'
import { createSSRApp } from 'vue'

/**
 * 1、自定义组件无需在全局注册
 * 2、必须在components目录下定义组件,没有则新建目录
 * 3、请使用vue3推荐的深度选择器(:deep())
 */
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
5、生命周期
  • 应用生命周期(App.vue)
<script>
	export default {
		//应用初始化完成执行,全局只执行一次
		onLaunch: function() {
			console.log('App Launch')
		},
		//应用显示的时候执行,或者从后台进入前台
		onShow: function() {
			console.log('App Show')
		},
		//应用隐藏的时候执行,或者从前台进入后台
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>
  • 页面生命周期(pages目录)
<script lang="ts">
	import { defineComponent } from 'vue';

	export default defineComponent({
		// 页面加载的时候触发
		onLoad() {
			console.log("page onLoad")
		},
		// 页面初次渲染完成触发
		onReady() {
			console.log("page onReady")
		},
		// 页面显示的时候触发
		onShow() {
			console.log("page onShow")
		},
		// 页面隐藏的时候触发
		onHide() {
			console.log("page onHide")
		},
		// 页面卸载的时候触发
		onUnload() {
			console.log("page onUnload")
		},
	});
</script>
  • 组件生命周期(components目录)
与vue3生命周期一致
posted on 2022-01-21 00:05  一路繁花似锦绣前程  阅读(544)  评论(0编辑  收藏  举报