首页 > 编程语言 >Taro 组件内如何混合微信小程序原生写法组件

Taro 组件内如何混合微信小程序原生写法组件

时间:2024-12-10 17:11:16浏览次数:4  
标签:product Taro 微信 item 组件 store

开发过程中发现 Taro 3.x 还未支持微信小店组件 store-product, 无法在 TSX 内直接使用 <store-product/> 标签

搜了一下,并未有很多例子可供参考,可能微信小程序内嵌入微信小店商品的需求不大...

又是趟坑的一天

拿官方的例子改了后居然成功实现了微信小店商品的嵌入

image

以下也作为开发记录

一、 创建微信小程序原生组件

先在 Taro 项目根目录下 components 内创建微信小程序原生写法的组件, 以 store-product-item 为例

自定义组件文件夹 store-product-item 三个文件如:

store-product-item/
 -- store-product-item.js
 -- store-product-item.json
 -- store-product-item.wxml

store-product-item.wxml 文件原码:

<view>
  <store-product appid="{{appid}}" product-id="{{productId}}" />
</view>

store-product-item.js 文件源码:

Component({
  behaviors: [],
  properties: {
    appid: { // 属性名
      type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
      value: '', // 属性初始值(可选),如果未指定则会根据类型选择一个
      observer: function(newVal, oldVal, changedPath) {
         // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange'
         // 通常 newVal 就是新设置的数据, oldVal 是旧数据
      }
    },
    productId: String // 简化的定义方式
  },
  data: {}, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function(){},
  moved: function(){},
  detached: function(){},

  methods: {
    clickHandler () {
      console.log('clicked')
    }
  }

})

store-product-item.json 文件源码:

{
  "component": true,
  "usingComponents": {
  }
}

以上三个文件的写法就是小程序源生组件的写法,并不需要特殊处理,只是定义了两个参数 appid,productId 需要在使用组件时传入

二、引用微信小程序原生组件

接下来需要在 tsx 文件内引用

以我项目的 page/profile/index 页面的 index.config.ts 配置文件为例

配置 usingComponents 引入 store-product-item 务必确保引入目录正确

index.config.ts 源码是这样的:

export default definePageConfig({
  navigationBarTitleText: '个人主页',
  navigationStyle: 'custom',
  enableShareAppMessage: true,
  enableShareTimeline: true,
  enablePageMeta: true,
  usingComponents: {
    'store-product-item': '../../components/store-product-item/store-product-item'
  }
})

重点是这个:

  usingComponents: {
    'store-product-item': '../../components/store-product-item/store-product-item'
  }

三、在页面中使用

现在在 tsx 内就可以 <store-product-item /> 它正常组件标签使用, 可传入 微信小店的 appid 以及 商品对应的 product-id

const appid = 'xxxx'
  const productId = 'yyyyy'
  return (
        <View>
            {/*@ts-ignore*/}
            <store-product-item product-id={productId} appid={appid} />
          </View>
	)

在 vscode 内可能会报标签没有引入的错误,所以 需要在 上 加上 {/*@ts-ignore*/}


Taro 官方 React 混合使用微信小程序的 demo https://github.com/NervJS/taro-sample-weapp


注:转载请注明出处博客园:王二狗Sheldon池中物 (willian12345@126.com)

标签:product,Taro,微信,item,组件,store
From: https://www.cnblogs.com/willian/p/18597679

相关文章

  • 基于微信小程序的鹤山市旅游足迹智慧系统的设计与实现~计算机毕业设计毕设论文选题项
    (1)小程序端-用户:注册登录、通知公告、搜索景点、酒店分类查看、搜索酒店、查看/收藏/评论酒店、预订酒店、我的订单【住宿/票务】、票务分类、搜索景点、查看/收藏点赞评论景点、旅游攻略【发帖/回帖】、我的收藏、我的钱包、联系人管理、个人信息/修改密码/注销登录/退出;(2)Web......
  • 移动端使用cordova-plugin-wechat实现微信授权登录,可以拉起微信,点击允许之后没有进入
    开发移动端使用微信授权登录时,遇到了这个问题,被困了两天终于在第三天好了。我使用的写法是cordova-plugin-wechat-npm里提供的写法: 一模一样复制下来的。一开始看到别的地方多传了一个appID的参数,我加传之后会报错,还是改回按照文档的这个写法。一开始以为是没授权,实际上看......
  • 微信公众号文章爬取
    还记得5年前写了一下公众号文章内容爬取的原理,至此仍然适用,一样可以爬取。原文链接本次带来的是现成的爬取工具1.wechat-article-exporterwechat-article-exporter是一款微信公众号文章导出工具,能够100%还原原文样式,工具受WeChat_Article项目的启发所写。目前支持搜......
  • 前端跨框架组件解决方案
    跨框架组件的开发,是一个兼顾用户体验(UX)和开发者体验(DX)的重要问题。随着前端技术生态的快速发展,如何开发能够适配不同框架的组件已成为UI一致性、业务多技术栈需求以及渐进式重构中的重要挑战。一、跨框架组件的使用场景1.大型业务的多技术栈需求大型业务企业的前端团队可能......
  • 文章详情页面需要分享到第三方,包括qq、qq空间、微博、微信。
    一、封装一个share.js文件,放在目录/utils下//share.js//url-需要分享的页面地址(当前页面地址)//title-分享的标题(文章标题)exportfunctiontoQQzone(url,title){url=encodeURIComponent(url)title=encodeURIComponent(title)window.open(`https://......
  • 十六、JMeter测试报告可视化组件
    总体统计信息请求总数:直观地展示了测试过程中总共发送的请求数量。这可以帮助你了解测试的规模,例如,如果你计划发送1000个请求,通过这个指标可以快速确认是否达到预期数量。平均响应时间:以图表或数值形式呈现所有请求的平均响应时长。通过观察平均响应时间,你可以初步判断系......
  • 微信外卖小程序+ssm
    摘要社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。因此,构建符合自己要求的操作系统是非常有意义的。本文从管理员、用户和商家的功能要求出发,微信外卖小程序......
  • 华为、荣耀手机微信聊天记录删除怎么恢复
    华为、荣耀手机最新的微信记录恢复方法,简单有效。HiSuite是华为手机官方的手机电脑助手管理软件,可以把手机设备上的数据备份至电脑,支持联系人、短信、应用程序等的备份。同样HiSuite也可以把微信库文件完整地备份到电脑上,这样就可以扫描微信库文件中待回收区域中的删除记录,从而实......
  • 【测试平台开发】Vue组件化使用学习教程
    一、理解Vue组件Vue组件是Vue.js框架中的一个核心概念,它允许你将UI拆分成可复用的部分,每个部分都包含自己的模板、逻辑和样式。通过组件化开发,你可以提高代码的可维护性和可复用性。二、创建Vue教程组件1、项目初始化:确保你已经使用VueCLI创建了一个Vue项目。2、创建组件:在......
  • EasyRTC的WebRTC点对点p2p双向视频通话微信小程序浏览器p2p视频对讲技术方案
    技术参数显示方式:浏览器内核传输方式:P2P支持浏览器类型:Chrome、Edge、Safari音频:双向对讲视频时延:200ms技术详情WebRTC应用IPC支持web无插件可视对讲支持嵌入式设备系统:Linux、ARM、LiteOS、RTOS、Android、iOSP2P传输可节省服务器流量费用可用HTML5架构web功能应用,多通......