uni vuex 组件及常用api

news2024/11/25 10:56:33

vuex

在这里插入图片描述
在store>index.js

//导入vue
import Vuex from 'vuex'
//导入Vue
import Vue from 'vue'
//使用Vuex
Vue.use(Vuex)
//导出Vuex
export default new Vuex.Store({
	//状态
	state:{
		gTitle:{
			text:'你好',
			color:'#000',
			fontSize:"24px",
			background:'#f70'
		},
		joks:[]
	},
	//改变状态的唯一方法
	mutations:{
		setJoks(state,data){
			state.joks=data
		},
		setSize(state,data){
			state.gTitle.fontSize=data+"px"
		},
		setBackgroundColor(state,data){
			state.gTitle.background=data
		}
	},
	//异步api操作
	actions:{
		//和后端交互,异步操作都会放在actions中
		getJok(context,data){
			uni.request({
				url: 'http://dida100.com/mi/list.php',
				method:"GET",
				data:data,
				// axios get请求传参用的params , post用data
				// uni.request postget传参也是用data
				//更加content-type如果是application/json
				//那么data是jison如果是urLencoeded data就是url编码形式
				success:res=>{
					console.log(res,"getJok");
					//调用mutations
					context.commit("setJoks",res.data.result)
				}
			})
		}
	},
	//内部计算
	getters:{
		//计算所有笑话字数总合
		"totallen":function(state){
			//reduce累计()
			var count=0
			for(var i=0;i<state.joks.length;i++){
				count+=state.joks[i].summary.length
			}
			return count
		}
	},
	//模块
	modules:{},
})```

在main.js中配置
```javascript
//导入vuex
//定义全局$store
import store from './store/index.js'
Vue.prototype.$store=store

在这里插入图片描述
在global.vue中

<template>
	<view>
		<view class="title">vuex数据</view>
		<!-- 使用vuex的数据 更新样式与文本 -->
		<view :style="$store.state.gTitle">
			{{$store.state.gTitle.text}}
		</view>
		<view :style="gTitle">
			{{$store.state.gTitle.text}}
		</view>
		<navigator url="./fontSize">修改文字大小</navigator>
		<navigator url="./backgroundColor">修改背景颜色</navigator>
		<view>{{$store.state.joks.length}}条笑话
		</view>
		<view>
			{{totallen}}</view>
		<view class="item" v-for="item in $store.state.joks">
			{{item.summary}}
		</view>
	</view>
</template>
<script>
	//state简写
	import {
		mapState,mapActions,mapGetters
	} from 'vuex'
	export default {
		computed: {
			...mapState(["gTitle"]),
			...mapGetters(["totallen"])
		},
		onLoad() {
			//调用getJok方法并
			this.$store.dispatch('getJok', {
				page:5
			})
		},
		data() {
			return {

			};
		}
	}
</script>

<style lang="less">
	.item {
		padding: 20rpx 30rpx;
	}
</style>

在backgroundColor.vue中

<template>
	<view>
		<view class="title">
			修改背景颜色
		</view>
		<view :style="{'backgroundColor':bgColor,height:'100px',with:'100%'}">{{bgColor}}
		<input type="text" v-model="bgColor">
		</view>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				bgColor:this.$store.state.gTitle.background
			}
		},
		watch:{
			"bgColor":{
				handler(){
					this.$store.commit("setBackgroundColor",this.bgColor)
				},
				deep:true
			}
		}
	}
</script>

<style>
</style>

在fontSize.vue中

<template>
	<view>
		<view class="title">
			修改文字大小
		</view>
		<view :style="$store.state.gTitle">
			{{$store.state.gTitle.text}}
		</view>
		<view>
			<slider :value="fontSize" @change="sizeChange"/>
		</view>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				fontSize:parseInt(this.$store.state.gTitle.fontSize)
			}
		},
		methods:{
			sizeChange(e){
				this.fontSize=e.detail.value
				//更新vuex中的数据
				this.$store.commit("setSize",e.detail.value)
			}
		}
	}
</script>

<style>
</style>

第三方组件的使用

准备工作
// 安装sass
npm i sass -D

配置步骤

1在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。
// main.js

import uView from '@/uni_modules/uview-ui'
Vue.use(uView)

2.在项目根目录的uni.scss中引入此文件。

/* uni.scss */

@import '@/uni_modules/uview-ui/theme.scss';

3.引入uView基础样式
在App.vue中首行的位置引入,注意给style标签加入lang="scss"属性

<style lang="scss">
	/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
</style>

4.配置easycom组件模式
uni-app为了调试性能的原因,修改easycom规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uView的功能。
请确保您的pages.json中只有一个easycom字段,否则请自行合并多个引入规则。
如果您是通过uni_modules形式引入uView,可以忽略此配置
// pages.json

{
	// 如果您是通过uni_modules形式引入uView,可以忽略此配置
	"easycom": {
		"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
	},
	
	// 此为本身已有的内容
	"pages": [
		// ......
	]
}

更多请参照uView官网:https://www.uviewui.com/components/downloadSetting.html

api

uni.getSystemInfoSync() 获取系统信息

	<view>屏幕宽高: {{info.screenWidth}},{{info.screenHeight}}</view>
		<view>系统: {{info.osName}}</view>
		<view>品牌:{{info.model}}</view>
		<view>brand:{{info.brand}}</view>
		<view>可以使用窗口的顶部位置{{info.windowTop}}</view>
		<view>安全区域{{JSON.stringify(info.safeArea)}}</view>
		<view>安全区域{{JSON.stringify(info.safeAreaInsets)}}</view>
data() {
			return {
				info:{},
			}
		},
		onLoad() {
			//获取系统信息
			var info=uni.getSystemInfoSync();
			this.info=info;
			console.log(this.info);
			//存储api
			uni.setStorageSync("info",info);
		}

获取胶囊信息uni.getMenuButtonBoundingClientRect()

	<!-- #ifdef MP -->
		<view>胶囊微信小程序</view>
		<view>导航栏高度{{(menuButtonInfo.top-info.statusBarHeight)*2+menuButtonInfo.height}}</view>
		<view>>胶囊:{{SON.stringify(menuButtonInfo)}}</view>
		<!-- #endif -->
		data() {
			return {
				menuButtonInfo:{}
			}
		},
		onLoad() {
			//获取胶囊按钮的边界
			let menuButtonInfo=uni.getMenuButtonBoundingClientRect();
			this.menuButtonInfo=menuButtonInfo;
			console.log(menuButtonInfo);
		},

图片操作的api上传图片,使用uni.chooseImage()选择图片,其内部嵌套uni.uploadFile()。单击图片实现图片预览模式uni.previewImage(),在接口内部可以实现分享uni.share(),保存uni.saveImageToPhotosAlbum()

<view>图片操作</view>
		<button @click="selectPic()">选择</button>
		<view v-for="item in list" :key="item" @click="preview(item)">
			<image :src="item" mode=""></image>
</view>

	methods: {
			preview(item) {
				var that = this;
				//单击通过实现预览
				uni.previewImage({
							//预览的图片列表
							urls: this.list,
							current: item, //当前图片
							longPressActions: {
								//定义长按的按钮
								itemList: ["发送给朋友", "保存图片", "收藏"],
								success: function(data) {
									console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片')
											//保存
											if(data.tapIndex == 1) {
												//保存到本地相册
												uni.saveImageToPhotosAlbum({
													filePath: that.list[data.index],
													success() {
														uni.showToast({
															title:"保存成功"
														})
													}
												})
											}
											//分享
											if (data.tapIndex == 0) {
												//分享给朋友(app打包时候分享要去微信的开发平台注册)
												uni.share({
													provider: "weixin",
													scene: "wXSceneSession",
													type: 2,
													imageUrl: that.list[data.index],
													success: function(res) {
														console.log("success:" + JSON.stringify(res));
													},
													fail: function(err) {
														console.log("fail:" + JSON.stringify(err));
													}
												});
											}
										},
										fail: function(err) {
											console.log(err.errMsg);
										}
								}
							})
					},
					selectPic() {
						var that = this
						//选择图片
						uni.chooseImage({
							count: 3, //默认选3张
							success(res) {
								//遍历结果的
								for (let i = 0; i < res.tempFilePaths.length; i++) {
									//上传图片
									uni.uploadFile({
										//上传地址
										url: 'http://520mg.com/ajax/file.php', //仅为示例,非真实的接口地址//图片信息
										filePath: res.tempFilePaths[i],
										//name需要和后端约定,默认都会叫fiLe
										name: 'file',
										success: result => {
											//转换为joson
											var data = JSON.parse(result.data);
											//添加域名后加入List
											that.list.push("http://520mg.com" + data.pic);
										}
									})
								}
								//上传到服务器
							}
						})

					}
			}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

循环神经网络(四)

一、循环神经网络和自然语言处理介绍 目标 知token和tokenization知道N-gram的概念和作用知道文本向量化表示的方法 1.1 文本的tokenization 1.1.1 概念和工具的介绍 tokenization 就是通常所说的分词&#xff0c;分出的每一个词话我们把它称为token。 常见的分词工具很多…

【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言~~~ 一、传感器的种类 传感器Sensor是一系列感应器的总称&#xff0c;是Android设备用来感知周围环境和运动信息的工具。 因为具体的感应信息依赖于相关硬件&#xff0c;所以虽然Android定义了众多感应器&#xff0c;但是并非每部手机都能支…

JZ-7Y-15 AC220V【静态中间继电器】

系列型号&#xff1a; JZ-7Y-15静态中间继电器&#xff1b; JZ-7J-15静态中间继电器&#xff1b; JZ-7L-15静态中间继电器&#xff1b; JZ-7D-15静态中间继电器&#xff1b; JZ-7Y-16静态中间继电器&#xff1b; JZ-7J-16静态中间继电器&#xff1b; JZ-7L-16静态中间继电器&am…

【Redis-07】Redis哨兵机制Sentinel的实现原理

Sentinel是Redis高可用性的解决方案&#xff1a;由一个或者多个Sentinel实例组成的哨兵系统监视多个主从服务器&#xff0c;并实现主从服务器的故障转义。  Sentinel本质上只是一个运行在特殊模式下的Redis服务器&#xff0c;使用以下命令可以启动并初始化一个Sentinel实例&am…

Express 4 快速入门 - 基本路由

Express Express 中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Express4 快速入门 - 基本路由4.1 什么是路由4.2 定义简单路由4.2.1 在主页回复字符串4.2.2 响应/应用程序主页根路由 ( ) 上的 POST 请求&#xff1a;4.2.3 响应对/user路…

订单超时自动取消3种方案——我们用这种!

大家好&#xff0c;大家对电商购物应该都比较熟悉了&#xff0c;我们应该注意到&#xff0c;在下单之后&#xff0c;通常会有一个倒计时&#xff0c;如果超过支付时间&#xff0c;订单就会被自动取消。 下单 今天&#xff0c;我们来聊聊订单超时未支付自动取消的几种方案。 1…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【02】Nacos、Feign、Gateway

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【02】微服务的几大组件SpringCloud Alibaba 简介简介为什么使用版本选择Nacos作为注册中心Feign声明式远程调用Nacos作为配置中心基本使用核心概念命名空间&#xff1…

【Linux】进程通信 | 信号

本篇博客让我们一起来康康信号部分的内容 系统为CentOS7.6&#xff0c;完整代码见 Gitee 文章目录1.什么是信号1.1 何为异步?1.2 信号的种类1.3 信号产生1.4 信号动作2.系统接口2.1 signal2.1.1 前台进程和后台进程2.1.2 循环捕捉所有信号2.1.3 信号9/192.2 kill2.2.1 killall…

人工智能数学基础--概率与统计13:连续随机变量的标准正态分布

一、引言 在《人工智能数学基础–概率与统计12&#xff1a;连续随机变量的概率密度函数以及正态分布》介绍了连续随机变量概率分布及概率密度函数的概念&#xff0c;并介绍了连续随机变量一个重要的概率密度函数&#xff1a;正态分布的概率密度函数的定义以及推导、使用场景&a…

培养出最多亿万富翁的美国大学TOP10榜单

若论世界大学排名&#xff0c;除了U.S. News、QS、软科、泰晤士这四大权威排名外&#xff0c;另有一些依据不同指标的排名。下面知识人网小编就推荐这份福布斯榜单给出的美国大学排名&#xff0c;供感兴趣的读者围观。 福布斯去年发布了一份全球亿万富豪榜&#xff08;World’s…

怎么看网站域名有没有收录 收录情况怎么样 网站收录查询

对于网站收录的概念&#xff0c;互联网中或者搜索引擎中已经有大量的相关定义。网站收录&#xff0c;指的是爬虫爬取了网页&#xff0c;并将页面内容数据放入搜索引擎数据库中这一结果。 怎么看网站域名有没有收录?录情况怎么样? 用站长工具查询网站收录的操作步骤&#xff1…

[TIST 2022]No Free Lunch Theorem for Security and Utility in Federated Learning

联邦学习中的安全性和实用性没有免费午餐定理 No Free Lunch Theorem for Security and Utility in Federated Learning 目录摘要简介2 相关文献2.1 隐私测量2.2 联邦学习2.2.1 FL 中的威胁模型。2.2.2 FL 中的保护机制。2.3 隐私-实用权衡3 一般设置和框架3.1 符号3.2 一般设置…

前端如何实现网页变灰功能的?

备注&#xff1a;本文大量摘取前端充电宝公众号相关文章&#xff0c;大家感兴趣可以关注该公众号进行阅读学习 目录 1.引入 2.页面灰色实现方法 3.filter其他属性 A.blur()&#xff1a;模糊 B.brightness()&#xff1a;亮度 C.contrast()&#xff1a;对比度 C.opacity()…

unity---Mesh网格编程(六)

目录 1.模型切割 2.代码 1.模型切割 如图&#xff0c;对3D模型的Mesh网格进行切割&#xff0c;会经过若干个三角面。而切割后&#xff0c;将会产生新的面来组成左右两边的物体。 要记录每个顶点与顶点下标&#xff0c;新的面要顺时针绘制&#xff0c; 2.代码 using System.…

docker+nginx 安装部署修改资源目录配置文件和容器端口信息

查看docker镜像 可以先查看docker下是否存在nginx镜像&#xff0c;使用如下这些命令查看&#xff1a; docker images: 列出所有镜像。docker images nginx: 列出所有nginx镜像&#xff0c;不同版本等等。docker search nginx: 搜索查看所有nginx镜像信息。 拉取安装nginx镜像…

Java8 函数式编程【基础篇】

Java 8是Java在保持向后兼容的前提下首次迈出重要一步&#xff0c;相比之前&#xff0c;不再是只对类库的改良&#xff0c;在编写复杂的集合处理、并行化执行、代码简洁度等方面都有颠覆性的提升。本文将探索和理解函数式编程的含义&#xff0c;以及它在Java 8中的实现。 一、…

RESTful API是什么?看完你整个人都通透了

要弄清楚什么是RESTful API&#xff0c;首先要弄清楚什么是REST&#xff1f; 01 REST REpresentational State Transfer&#xff0c;英语的直译就是“表现层状态转移”。如果看这个概念&#xff0c;估计没几个人能明白是什么意思。那下面就让我来用一句话解释一下什么是RESTf…

低代码搭建质量管理解决方案,为企业管理提速降本

市场竞争的越来越卷&#xff0c;越来越多的制造企业认识到质量管理的重要性。尤其随着全球经济化与信息化的到来&#xff0c;质量管理已经成为企业管理的关键环节。然而与国际上具有先进技术和管理水平的企业相比&#xff0c;我国企业的质量管理较为薄弱&#xff0c;存在着质量…

【MATLAB】羽状图

目录 羽状图 羽状图 h0figure(toolbar,none,...position,[200 150 450 350],...name,实例28);subplot(2,1,1)alpha90:-10:0;rones(size(alpha));malpha*pi/180;nr*10;[u,v]pol2cart(m,n);feather(u,v)title(羽状图)axis([0 20 0 10])subplot(2,1,2)t0:0.5:10;x0.05i;yexp(-x*t…

R语言解释生存分析中危险率和风险率的变化

危险率函数 让我们模拟R中的一些数据&#xff1a; n < - 10000 h < - 0.5 t < - -log&#xff08;runif&#xff08;n&#xff09;&#xff09;/ h 该代码模拟了危险函数的存活时间&#xff0c;即常数。 视频&#xff1a;R语言生存分析原理与晚期肺癌患者分析案…