Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat condition compiler #14733

Open
wants to merge 4 commits into
base: 3.x
Choose a base branch
from

Conversation

voidman2017
Copy link
Contributor

这个 PR 做了什么? (简要描述所做更改)

vue2/3 支持模板条件编译

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue: fix #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 涉及以下平台:

  • 所有小程序
  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序
  • QQ 轻应用
  • 京东小程序
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)
  • 鸿蒙(harmony)

@taro-bot2
Copy link

taro-bot2 bot commented Oct 31, 2023

欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷

一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。

Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏

  1. 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
  2. 确保 CI 顺利运行。
  3. 最好能提供对应的测试用例。

为了更好地进行沟通,请加入 Taro 开发者微信群:

@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 14, 2023

@voidman2017 麻烦提供一下用例,我们跑一下

@voidman2017
Copy link
Contributor Author

@voidman2017 麻烦提供一下用例,我们跑一下

<template>
  <view>
    <view class="index">
      <view>
        <!-- #ifdef  alipay || weapp || h5  -->
        <view>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis tenetur aspernatur quo inventore omnis
          nulla perferendis illum blanditiis eligendi tempora, recusandae itaque, laboriosam corrupti, ad libero
          voluptate et facilis similique?
        </view>
        <!-- #endif  -->

        <!-- #ifdef  weapp -->
        <view>
          weapp
          <!-- #ifdef  h5 -->
          <view>weapp - h5</view>
          <!-- #else -->
          <view>weapp - not h5</view>
          <!-- #endif  -->

          <!-- #ifdef  weapp -->
          <view> weapp - weapp </view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifdef  gmu -->
        <view>
          gmu
          <!-- #ifdef  h5 -->
          <view>gmu - h5</view>
          <!-- #else -->
          <view>gmu - not h5</view>
          <!-- #endif  -->

          <!-- #ifdef  gmu -->
          <view> gmu - gmu </view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifdef  h5 -->
        <view>
          h5
          <!-- #ifdef  weapp -->
          <view> h5 - weapp </view>
          <!-- #endif  -->

          <!-- #ifdef  h5 -->
          <view>h5 - h5</view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifndef  weapp -->
        <view>ifndef not weapp</view>
        <!-- #else -->
        <view>ifndef is weapp</view>
        <!-- #endif -->

        <!-- #ifndef  h5 -->
        <view>ifndef not h5</view>
        <!-- #else -->
        <view>ifndef not else h5</view>
        <!-- #endif -->

        <!-- #ifndef  h5 || weapp || gmu -->
        <view>ifndef h5 or weapp or gmu</view>
        <!-- #endif -->
      </view>
      <button @tap="clickHandler">click</button>
      <button @tap="toDetail">to detail</button>
    </view>
  </view>
</template>


<script>
import './index.scss'
import taro from '@tarojs/taro'

export default {
  data() {
    return {
      msg: ` hello world `,
    }
  },
  methods: {
    clickHandler() {
      this.msg += '!'
    },
    toDetail() {
      console.log('===debug=== toDetail: ')
      taro.navigateTo({
        url: '/pages/detail/index',
      })
    },
  },
  onShow() {
    console.log('===debug=== onShow pages/index/index')
  },
}
</script>

包含了嵌套、多平台支持。对应文档的内容做了一下修正

@voidman2017
Copy link
Contributor Author

@voidman2017 麻烦提供一下用例,我们跑一下

<template>
  <view>
    <view class="index">
      <view>
        <!-- #ifdef  alipay || weapp || h5  -->
        <view>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis tenetur aspernatur quo inventore omnis
          nulla perferendis illum blanditiis eligendi tempora, recusandae itaque, laboriosam corrupti, ad libero
          voluptate et facilis similique?
        </view>
        <!-- #endif  -->

        <!-- #ifdef  weapp -->
        <view>
          weapp
          <!-- #ifdef  h5 -->
          <view>weapp - h5</view>
          <!-- #else -->
          <view>weapp - not h5</view>
          <!-- #endif  -->

          <!-- #ifdef  weapp -->
          <view> weapp - weapp </view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifdef  gmu -->
        <view>
          gmu
          <!-- #ifdef  h5 -->
          <view>gmu - h5</view>
          <!-- #else -->
          <view>gmu - not h5</view>
          <!-- #endif  -->

          <!-- #ifdef  gmu -->
          <view> gmu - gmu </view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifdef  h5 -->
        <view>
          h5
          <!-- #ifdef  weapp -->
          <view> h5 - weapp </view>
          <!-- #endif  -->

          <!-- #ifdef  h5 -->
          <view>h5 - h5</view>
          <!-- #endif  -->
        </view>
        <!-- #endif  -->

        <!-- #ifndef  weapp -->
        <view>ifndef not weapp</view>
        <!-- #else -->
        <view>ifndef is weapp</view>
        <!-- #endif -->

        <!-- #ifndef  h5 -->
        <view>ifndef not h5</view>
        <!-- #else -->
        <view>ifndef not else h5</view>
        <!-- #endif -->

        <!-- #ifndef  h5 || weapp || gmu -->
        <view>ifndef h5 or weapp or gmu</view>
        <!-- #endif -->
      </view>
      <button @tap="clickHandler">click</button>
      <button @tap="toDetail">to detail</button>
    </view>
  </view>
</template>


<script>
import './index.scss'
import taro from '@tarojs/taro'

export default {
  data() {
    return {
      msg: ` hello world `,
    }
  },
  methods: {
    clickHandler() {
      this.msg += '!'
    },
    toDetail() {
      console.log('===debug=== toDetail: ')
      taro.navigateTo({
        url: '/pages/detail/index',
      })
    },
  },
  onShow() {
    console.log('===debug=== onShow pages/index/index')
  },
}
</script>

包含了嵌套、多平台支持。对应文档的内容做了一下修正

多平台支持的文档说明修正了一下
NervJS/taro-docs#206

@liqinuo liqinuo changed the base branch from main to 3.x July 16, 2024 06:55
@ZEJIA-LIU ZEJIA-LIU deleted the branch NervJS:3.x July 16, 2024 07:15
@ZEJIA-LIU ZEJIA-LIU closed this Jul 16, 2024
@ZEJIA-LIU ZEJIA-LIU reopened this Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants