最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

nuxt+vant-ui聊天實例|nuxt/vue仿微信模板

2020-10-17 17:50 作者:xiaoyan2019  | 我要投稿

運(yùn)用Nuxt.js+vue.js+vuex+vant-UI等技術(shù)構(gòu)架開發(fā)的仿微信App界面聊天模板實例項目。實現(xiàn)了消息+表情發(fā)送、圖片+視頻查看、下拉刷新+長按彈出框、紅包+朋友圈等功能。

使用技術(shù)

  • 技術(shù)框架:nuxt.js+vue.js+vuex

  • ui組件庫:vant-ui (有贊移動端vue.js組件庫)

  • 字體圖標(biāo):阿里iconfont圖標(biāo)庫

  • 彈窗組件:vpopup(基于vue自定義彈框)

  • 本地存儲:cookie-universal-nuxt: ^2.1.4

下面展示一些具體的項目效果吧。

快速了解Nuxt.js

Nuxt.js是一個基于Vue.js?構(gòu)建的服務(wù)端渲染框架。讓你的網(wǎng)站也能實現(xiàn)SEO功能。Nuxt預(yù)設(shè)了利用 Vue.js 開發(fā)服務(wù)端渲染的應(yīng)用所需要的各種配置。例如異步數(shù)據(jù)加載、中間件支持、布局支持等。

Github上面擁有的star高達(dá)30.8K+。這就充分說明了很受開發(fā)者的青睞!

nuxt自定義組件介紹

項目中的?頂部導(dǎo)航條Navbar/底部Tab標(biāo)簽欄/彈出框?組件均是自定義實現(xiàn)功能。

之前有過相關(guān)的分享文章,這里就不作詳細(xì)介紹了。

nuxt實現(xiàn)探探卡片滑動

項目中“翻一翻”頁面實現(xiàn)類似探探卡片滑動功能。實現(xiàn)了拖拽滑動及點擊下方按鈕切換卡牌。

nuxt布局模板

<template>??

? <div class="nuxt__container flexbox flex-col">??

? ? <header-bar />??

? ? <div class="nuxt__scrollview scrolling flex1">

<nuxt />

</div>??

? ? <tab-bar />??

? </div>??

</template>

大家也可以根據(jù)項目需要,自定義布局模板,只需在layouts目錄下新建xxx.vue模板,然后在相應(yīng)的頁面通過 layout: 'xxx' 引入即可使用。

nuxt.config.js配置文件

export default {??

? // 端口配置(可選)??

? server: {??

? ? // port: 3003,??

? ? // host: '192.168.111.69'??

? },??

? // 頁面頭部meta信息配置??

? head: {??

? ? title: process.env.npm_package_name || '',??

? ? meta: [??

? ? ? { charset: 'utf-8' },??

? ? ? { name: 'viewport', content: 'width=device-width, initial-scale=1, user-scalable=no' },??

? ? ? { hid: 'keywords', name: 'keywords', content: 'Vue.js | Nuxt.js | Nuxt仿微信'},??

? ? ? { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }??

? ? ],??

? ? link: [??

? ? ? { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },??

? ? ? { rel: 'stylesheet', href: '/js/wcPop/skin/wcPop.css' },??

? ? ],??

? ? script: [??

? ? ? { src: '/js/fontSize.js' },??

? ? ? { src: '/js/wcPop/wcPop.js' },??

? ? ]??

? },??

? // 全局css配置??

? css: [??

? ? '~/assets/css/reset.css',??

? ? '~/assets/css/layout.css',??

? ? '~/assets/fonts/iconfont.css',??

? ],??

? // 全局插件列表??

? plugins: [??

? ? '~/plugins/vue-global.js',??

? ? // 通過這種方式引入本地js也可以(需設(shè)置ssr:false)??

? ? // {src: '~/assets/js/fontSize.js', ssr: false}??

? ],??

? // ...??

}

nuxt.config.js包含了大部分的全局配置信息,當(dāng)然也可以在相應(yīng)的.vue頁面進(jìn)行一些自定義配置選項。

<script>??

export default {??

? ? // 配置頁面 meta 信息??

? ? head() {??

? ? ? ? return {??

? ? ? ? ? ? title: '這里是標(biāo)題信息 - 標(biāo)題信息',??

? ? ? ? ? ? meta: [??

? ? ? ? ? ? ? ? {name:'keywords',hid: 'keywords',content: '關(guān)鍵字1 | 關(guān)鍵字2 | 關(guān)鍵字3'},??

? ? ? ? ? ? ? ? {name:'description',hid:'description',content: '描述1 | 描述2 | 描述3'}??

? ? ? ? ? ? ]??

? ? ? ? }??

? ? },??

? ? // 自定義布局頁面??

? ? layout: 'xxx.vue',??

? ? // 中間件處理??

? ? middleware: 'auth',??

? ? // 異步處理??

? ? async asyncData({app, params, query, store}) {??

? ? ? ? let uid = params.uid??

? ? ? ? let cid = query.cid??

? ? ? ? return {??

? ? ? ? ? ? uid: uid,??

? ? ? ? ? ? cid: cid,??

? ? ? ? }??

? ? },??

? ? // ...??

}??

</script>

聊天模塊

另外聊天編輯框原本是使用textarea實現(xiàn),考慮到文本框中不能插入表情圖,后來就改為使用div的可編輯屬性contenteditable來實現(xiàn)功能。

<template>??

? ? <div??

? ? ? ? ref="editor"??

? ? ? ? class="editor"??

? ? ? ? contentEditable="true"??

? ? ? ? v-html="editorText"??

? ? ? ? @click="handleClick"??

? ? ? ? @input="handleInput"??

? ? ? ? @focus="handleFocus"??

? ? ? ? @blur="handleBlur"??

? ? ? ? style="user-select:text;-webkit-user-select:text;">??

? ? </div>??

</template>

好了,就分享到這里吧。希望對大家有點點的幫助哈?。?


nuxt+vant-ui聊天實例|nuxt/vue仿微信模板的評論 (共 條)

分享到微博請遵守國家法律
宁国市| 神木县| 屯留县| 惠水县| 通海县| 永福县| 河池市| 平江县| 缙云县| 综艺| 开阳县| 内乡县| 定襄县| 民勤县| 忻州市| 台湾省| 临武县| 曲阳县| 白朗县| 清流县| 革吉县| 宿松县| 神木县| 博客| 泰州市| 石渠县| 襄汾县| 石门县| 潮安县| 花莲县| 濉溪县| 博白县| 玛多县| 佳木斯市| 道孚县| 古丈县| 甘泉县| 博客| 江山市| 滕州市| 济源市|