所有分类
  • 所有分类
  • 后端开发
学会用Vue打造印象笔记2.0,轻松搞定复杂UI界面

学会用Vue打造印象笔记2.0,轻松搞定复杂UI界面

印象笔记是一种众所周知的笔记应用程序,它提供了许多功能,并拥有一个非常独特的界面设计。实现仿印象笔记的页面设计。的组件来实现笔记本详细信息页面。在这个组件中,我们将呈现笔记本的标题和内容。我们还将在笔记本的底部添加一个文本框,以便用户可以添

前端框架真多最近最火的那肯定是Facebook的Vue,速度快得不得了,做网页布局省心舒坦,尤其适合搞那种复杂的UI界面。大家都觉得好用。你们听说过印象笔记不?那个界面美得让人惊叹,功能也很强大,实在是爱不释手。所以咱们今天就学习下怎么学着用Vue做出个跟印象笔记类似的网站。重要的事情是要用Vue编程,设计网页布局,加上路由和Vuex管理页面状态等。

创建Vue应用程序

vue create my-app

亲们,试试用Vue CLI快速建个叫”my-app”的Vue应用。太简单了!只需要在命令行打几行就ok~

安装必要的依赖项

npm install vue-router vuex vue-fontawesome bootstrap-vue

做这个任务,先搞点装备吧—Vue.js的导航组件,Vuex这大神器,再来个Font Awesome的图标库,最后加个Bootstrap-Vue更棒了!有了它们,你的难题都能轻松解决!

构建页面布局

咱们赶紧开始,先安好左边的平板电脑和NoteView东西,把大体框架搭出来。左边看笔记本啊标签什么的状态;右面那个NoteView就是要看你写的笔记。弄好了这两样儿,主页面的样子就有了!

  
import Navbar from '@/components/Navbar.vue' import Sidebar from '@/components/Sidebar.vue' import NoteView from '@/components/NoteView.vue' export default { components: { Navbar, Sidebar, NoteView } } /* Visit https://bootstrap-vue.js.org/docs/ for BootstrapVue documentation and examples */

添加路由和Vuex状态管理

搞定Vue项目其实不难!先学学如何通过路由来切换页面;然后,用Vuex来管理数据也是挺不错的选择。别忘了用它存一下短期内要用到的信息,这样路由就可以帮忙实现页面之间的交互。记得,设定固定数值、定义状态、写好操作和变更什么的都不能漏掉,只要做全了,你的项目才能有条不紊哟。

学会用Vue打造印象笔记2.0,轻松搞定复杂UI界面

export const SET_NOTEBOOKS = 'SET_NOTEBOOKS'
export const SET_NOTES = 'SET_NOTES'
export const SET_TAGS = 'SET_TAGS'
export const SET_ACTIVE_NOTEBOOK = 'SET_ACTIVE_NOTEBOOK'
export const SET_ACTIVE_NOTE = 'SET_ACTIVE_NOTE'
export const ADD_NOTEBOOK = 'ADD_NOTEBOOK'
export const ADD_NOTE = 'ADD_NOTE'
export const ADD_TAG = 'ADD_TAG'

实现左侧边栏

export default {
  notebooks: [],
  notes: [],
  tags: [],
  activeNotebook: null,
  activeNote: null
}

咱们这儿的侧边栏就像印象笔记似的,方便整理笔记本和标签。想要新增啥子笔记本或标签,直接搞定就OK啦~对了,为了美观点儿,我们还使上了FontAwesome的图标库呢~

实现笔记本详细页面

import {
  SET_NOTEBOOKS,
  SET_NOTES,
  SET_TAGS,
  SET_ACTIVE_NOTEBOOK,
  SET_ACTIVE_NOTE,
  ADD_NOTEBOOK,
  ADD_NOTE,
  ADD_TAG
} from './index'
export default {
  [SET_NOTEBOOKS](state, notebooks) {
    state.notebooks = notebooks
  },
  [SET_NOTES](state, notes) {
    state.notes = notes
  },
  [SET_TAGS](state, tags) {
    state.tags = tags
  },
  [SET_ACTIVE_NOTEBOOK](state, notebook) {
    state.activeNotebook = notebook
  },
  [SET_ACTIVE_NOTE](state, note) {
    state.activeNote = note
  },
  [ADD_NOTEBOOK](state, notebook) {
    state.notebooks.push(notebook)
  },
  [ADD_NOTE](state, note) {
    state.notes.push(note)
  },
  [ADD_TAG](state, tag) {
    state.tags.push(tag)
  }
}

告诉你们个好消息,我们新出的那款NoteView不仅能读笔记本还能看清里头的内容~而且,记事本上有地方可以随时记录想法,用起超顺手哒!

import axios from 'axios'
import {
  SET_NOTEBOOKS,
  SET_NOTES,
  SET_TAGS,
  SET_ACTIVE_NOTEBOOK,
  SET_ACTIVE_NOTE,
  ADD_NOTEBOOK,
  ADD_NOTE,
  ADD_TAG
} from './index'
const api = 'https://my-json-server.typicode.com/abhinav1507/demo'
export default {
  getNotebooks({ commit }) {
    axios.get(`${api}/notebooks`).then(response => {
      commit(SET_NOTEBOOKS, response.data)
    })
  },
  getNotes({ commit }) {
    axios.get(`${api}/notes`).then(response => {
      commit(SET_NOTES, response.data)
    })
  },
  getTags({ commit }) {
    axios.get(`${api}/tags`).then(response => {
      commit(SET_TAGS, response.data)
    })
  },
  setActiveNotebook({ commit }, notebook) {
    commit(SET_ACTIVE_NOTEBOOK, notebook)
  },
  setActiveNote({ commit }, note) {
    commit(SET_ACTIVE_NOTE, note)
  },
  addNotebook({ commit }, notebook) {
    axios.post(`${api}/notebooks`, notebook).then(response => {
      commit(ADD_NOTEBOOK, response.data)
    })
  },
  addNote({ commit }, note) {
    axios.post(`${api}/notes`, note).then(response => {
      commit(ADD_NOTE, response.data)
    })
  },
  addTag({ commit }, tag) {
    axios.post(`${api}/tags`, tag).then(response => {
      commit(ADD_TAG, response.data)
    })
  }
}

搞定Vue版印象笔记超轻松!只要会用组件开发、导航、状态管理等功能,再加上FontAwesome和Bootstrap-Vue两大助手,很快你就能打造出炫酷的用户界面和实用的应用了。就跟玩儿积木似的,超级简单!

咱们的Vue应用越来越牛了!每次升级总能见到新功能和好看的模板,绝对让你玩到上瘾!

import Vue from 'vue'
import Vuex from 'vuex'
import VueRouter from 'vue-router'
import Home from '@/views/Home.vue'
import Notebook from '@/views/Notebook.vue'
Vue.use(VueRouter)
Vue.use(Vuex)
const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/notebook/:id',
    name: 'Notebook',
    component: Notebook
  }
]
const router = new VueRouter({
  routes
})
export default router

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/04/14835.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?