weex 项目开发自定义 过滤函数 和 混合 及 自定义 Header 组件

Posted 每天都要进步一点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weex 项目开发自定义 过滤函数 和 混合 及 自定义 Header 组件相关的知识,希望对你有一定的参考价值。

1.自定义  过滤函数

src / filters / index.js

/**
 * 自定义 过滤函数
 */
export function host (url) {
  if (!url) return \'\'
  const host = url.replace(/^https?:\\/\\//, \'\').replace(/\\/.*$/, \'\')
  const parts = host.split(\'.\').slice(-3)
  if (parts[0] === \'www\') parts.shift()
  return parts.join(\'.\')
}

export function https (url) {
  const env = weex.config.env || WXEnvironment
  if (env.platform === \'ios\' && typeof url === \'string\') {
    return url.replace(/^http\\:/, \'https:\')
  }
  return url
}

export function timeAgo (time) {
  const between = Date.now() / 1000 - Number(time)
  if (between < 3600) {
    return pluralize(~~(between / 60), \' minute\')
  } else if (between < 86400) {
    return pluralize(~~(between / 3600), \' hour\')
  } else {
    return pluralize(~~(between / 86400), \' day\')
  }
}

function pluralize (time, label) {
  if (time === 1) {
    return time + label
  }
  return time + label + \'s\'
}

export function unescape (text) {
  let res = text || \'\'

  ;[
    [\'<p>\', \'\\n\'],
    [\'&\', \'&\'],
    [\'&\', \'&\'],
    [\'\'\', \'\\\'\'],
    [\'\'\', \'\\\'\'],
    [\'/\', \'/\'],
    [\'\'\', \'\\\'\'],
    [\'/\', \'/\'],
    [\'<\', \'<\'],
    [\'>\', \'>\'],
    [\' \', \' \'],
    [\'"\', \'"\']
  ].forEach(pair => {
    res = res.replace(new RegExp(pair[0], \'ig\'), pair[1])
  })

  return res
}

2.自定义  混合 函数

src / mixins / index.js

/**
 * 混合
 */
export default {
  methods: {
    jump (to) {
      if (this.$router) {
        this.$router.push(to)
      }
    }
  }
}

3.自定义  Header 组件

src / components / Header.vue

Header.vue

<!-- Header 组件 -->
<template>
  <div class="wrapper">
    <div class="scan">
      <text class="ic iconfont"></text>
      <text class="txt">扫一扫</text>
    </div>
    <text class="search iconfont"  @click="jumpWeb()"> 搜索商品,共8888款好物</text>
    <div class="notice">
      <text class="ic iconfont"></text>
      <text class="txt">消息</text>
    </div>
  </div>
</template>
 
<script>
  var navigator = weex.requireModule(\'navigator\');
  import util from \'../utils/util.js\';

  export default {
    data () {
      return {
        //
      }
    },
    created () {
      //
    },
    methods: {
      jumpWeb (_url) {
        if(!_url) _url = \'http://m.you.163.com/search\';
        const url = this.$getConfig().bundleUrl;
        navigator.push({
          url: util.setBundleUrl(url, \'page/webview.js?weburl=\'+_url) ,
          animated: "false"
        });
      }
    }
  }
</script>
 
<style scoped>
  .iconfont {
    font-family:iconfont;
  }
  .wrapper{
    position: fixed;
    top: 0;
    left: 0;right: 0;
    height: 114px;
    padding-top: 34px;
    display:flex;
    flex-wrap: nowrap;
    flex-direction: row;
    justify-content: space-around;
    z-index: 101;
    background-color: #fafafa;
    opacity: .99;
  }
  .scan,.notice{
    height: 80px;
    width: 96px
  }
  .ic,.txt,.search{
    text-align: center;
    color:#666;
    font-weight: 300;
  }
  .ic{
    font-size: 32px;
  }
  .txt{
    font-size: 18px;
  }
  .search {
    flex: 1;
    height: 60px;
    font-size: 26px;
    padding-top: 13px;
    background-color: #ededed;
    border-radius: 8px;
  }
</style>

4.页面调用

src / pages / Home / Home.vue

Home.vue

<!-- 首页 -->
<template>
  <div>
    <!-- 顶部标题栏 -->
    <home-header></home-header>
  </div>
</template>
 
<script>
  import Header from \'../../components/Header.vue\';

  export default {
    name: \'Home\',
    components: {
      \'home-header\': Header,
    },
    data: () => ({
      //
    }),
    created () {
      //
    },
    methods: {
      //
    }
  };
</script>

5.效果图

以上是关于weex 项目开发自定义 过滤函数 和 混合 及 自定义 Header 组件的主要内容,如果未能解决你的问题,请参考以下文章

Weex避坑指南-理论篇

17.自定义过滤器及模板中的使用(实战通过自定义过滤器实现内置过滤器lower和cut的功能)

17.自定义过滤器及模板中的使用(实战通过自定义过滤器实现内置过滤器lower和cut的功能)

混合开发之uni-app

自定义过滤器及标签

16.引言篇——自定义过滤器及标签