uni-app嵌入微信小程序原生代码

使用uni-app有时需要用到微信小程序原生代码

解析:
  1. uni-app项目结构跟原生小程序的项目结构有着不一致的区别,如果说开发过程中必须要使用原生代码,就需要把原生代码作为组件的方式在uni-app项目中引入使用
  2. 官网为了应对这一个需求,就给出了以下方法,供开发者实现
    • wxcomponents 微信小程序专用、qq小程序
    • mycomponents 支付宝小程序
    • swancomponents 百度小程序
    • ttcomponents 字节跳动小程序、飞书小程序
    • kscomponents 快手小程序
    • jdcomponents 京东小程序
    • 以上使用哪一个就在项目根目录创建对应的文件夹

项目中所使用到的为微信小程序wxcomponents 的使用方式,如需更多的操作方式点击此处查看

1、 在根目录创建wxcomponents

  • 在这里插入图片描述
  • 创建完成之后在文件夹里面创建原生格式的文件,所使用的资源我也不确定是不是非得在这里面,可以尝试一下,我是直接放在里面了
  • 在这里插入图片描述
  • index.json文件中需要配置把当前页面当成组件
{
    
    
 "component": true,
}

2、在pages下,创建一个需要引入原生代码的页面

  • 在这里插入图片描述

3、 pages.json中配置组件路径

  • 配置在那个页面中可以使用这个原生组件
"pages": [
    {
    
    
        	"path": "pages/Bluetooth/index",
        	"style": {
    
    
        		"navigationBarTitleText": "原生页",
        		"usingComponents": {
    
    
        			"custom": "/wxcomponents/custom/index"   // 这个路径就是引入进来的原生代码
    			}
    		}
   	}
] 

4、 所有配置文件都已经完成了,接下来就是在2步中创建的页面里面使用了

<template>
  <view>
   // 因为在pages中已经把/wxcomponents/custom/index注册成当前也面下的组件了,
    // 所有在此页面中直接使用就行
    <custom></custom>
    <view></view>
    // 此页面下也是可以进行绘制的
  </view>
</template>
<script>

</script>

注意 wxcomponents中的文件需要遵守原生的书写规范,和方法的使用
调用api需要使用wx为前缀,而非uni

附 原生代码页面基础所需代码

index.wxml

<view class="viewBox">
	<span biudtap="customMethod">{
   
   {innerText}}</span>
</view>

index.wxss

/* 需要引入scss之后才可以进行嵌套,否则就是用原生的css写吧 */
.viewBox{
    
    
	margin-top: 200rpx;
	padding: 0 30rpx;
}
.viewBox span{
    
    
	font-size:30px
	color:#000000
}

index.json

{
    
    
// 把当前页面注册为组件
  "component": true,
}

index.js

// 页面的最上方引入所需要使用的文件
import YS from '../utils/index.js'
Component({
    
    
// 这个玩意应该是传递参数时使用,可在wxml中直接使用
	properties: {
    
    
	    // 这里定义了 innerText 属性,属性值可以在组件使用时指定
	    innerText: {
    
    
	      type: String,
	      value: 'default value',
	    }
	},
	data: {
    
    
	    // 这里是一些组件内部数据
	    someData: {
    
    }
	 },
	 // 声明周期函数
	 ready(){
    
    
	 	console.log('我执行了')
	 },
	 methods: {
    
    
	 // 页面中使用的方法
	    customMethod: function(){
    
    
	    	console.log('我点击了页面中的文字')
	    }
	 }
})

完结
更多详细内容请移步到官方文档查看
微信自定义组件
Component构造器
组件生命周期

猜你喜欢

转载自blog.csdn.net/weixin_45243487/article/details/129333909