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.效果图

时间: 2024-10-16 11:26:55

weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件的相关文章

Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频

Android设备实现录制音频的简单demo 转载请注明; http://blog.csdn.net/u013670933/article/details/26089487 代码例如以下: public class MainActivity extends Activity { File soundFile;//输出文件 MediaRecorder mRecorder; @Override protected void onCreate(Bundle savedInstanceState) {

weex 项目开发(三) weex + weex-ui

github地址:weex-ui https://github.com/alibaba/weex-ui 官网: https://alibaba.github.io/weex-ui/#/cn/ 汇集使用 (推荐) import { WxcComponent1, WxcComponent2 } from "weex-ui" 为了不打包所有的组件,你需要使用 babel-plugin-component 来只引入需要的组件打包. npm i babel-plugin-component -D

[php笔记]项目开发五个阶段/雇员管理系统

zend 公司,管理PHP版本的升级. 功能强大, 官方推荐. (开发一个PHP项目) 软件开发的五个阶段. 1.创建一个项目(工程)2.设置该项目的路径3.创建一个文件test.php ***使用ZEND/EPP/Eclipse等IDE的细节***1.将文件的编码 设置为 UTF-8 ***快捷键和调试功能***1.提示符助手content assist (快捷键alt+/)2.复制当前行(CTRL+ALT+向下)3.删除当前行(CTRL+D)4.块注释 S+C+/, S+C+\5.调试PHP

weex 项目开发(一)

开发环境配置:http://www.cnblogs.com/crazycode2/p/7822961.html 1. weex create project  与  weex init project  的区别 > 个人理解weex-toolkit可以用来开发时调试,weexpack用作打包,但是怎么把weex-toolkit开发完成的文件放进weexpack进行打包呢 > 你只需要把你的vue 或者 .we文件放到src下面. > 使用weex-toolkit脚手架的init是初始化一

weex 项目开发 weexpack 项目 打包、签名、发布

一. weexpack build android  和  weexpack run android 的 区别. (1)单纯打包 weexpack build android (2)打包并运行 weexpack run android 注:执行时,发现两者都是调起了浏览器 二.不同平台的打包 html5平台: (1)打包html5平台 weexpack build web 这样你可以把打包后的资源上传到cdn服务器,然后上线你的web项目. (2)在 html5 平台运行 weexpack ru

自定义Hooks函数获取窗口大小(十一)

其实自定义Hooks函数和用Hooks创建组件很相似,跟我们平时用JavaScript写函数几乎一模一样,可能就是多了些React Hooks的特性,自定义Hooks函数偏向于功能,而组件偏向于界面和业务逻辑.由于差别不大,所以使用起来也是很随意的.如果是小型项目是可以的,但是如果项目足够复杂,这会让项目结构不够清晰.所以学习自定义Hooks函数还是很有必要的. 编写自定义函数 在实际开发中,为了界面更加美观.获取浏览器窗口的尺寸是一个经常使用的功能,这样经常使用的功能,就可以封装成一个自定义H

漫谈js自定义事件、DOM/伪DOM自定义事件

一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义

js自定义事件、DOM/伪DOM自定义事件

一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义

项目开发中自定义字段设计原则

在开发系统过程中,做到自定义字段策略设置,目前这种功能是很多系统的标准配置,这样子可以简化后续增加字段的难度,并对自定义字段做管理. 自定义字段功能要注意到以下几点: 1.批量规划好要自定义字段的数据表.2.对自定义字段存放的表字典表做设计3.对自定义字段做不同的属性设计4.自定义字段的扩展设计 1.明确是哪个表需要自定义字段.如果是开发一套易用的系统,做开发的时候对用到的主表做统一的自定义字段设计.这样子方便在以后的开发应用中直接操作自定义功能就能增加字段.很多程序员在初写程序的时候,增加字段