vue-router

Vuebnb:一个用vue.js和Laravel构建的全栈应用

不想你离开。 提交于 2019-12-05 11:05:31
今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel。它会在Packt出版社在2018年初出版。 这本书是围绕着一个案例研究项目,Vuebnb,简单克隆Airbnb。在这篇文章中,我会把它如何工作做一个高层次的概述,好让你了解如何从零开始参与建设一个Vue/Laravel构建的全栈应用。 这是一个现场演示如果你想看看的话: https://vuebnb.vuejsdevelopers.com 概述 作为一个完整的全栈应用程序,Vuebnb由不同的部分组成: 前端应用,使用Vue.js构建。我也使用Vue-Router管理页面创建,用Vuex管理全局状态。代码最初是写在一个浏览器的脚本文件,但随着复杂性的增加使用WebPack生成,并设置允许单个文件组件和ES+功能。 后台应用程序,内置Laravel。它的主要工作是为前端应用程序服务,并为列表数据提供Web服务。在Vue-Router服务下,Web服务允许Vuebnb像一个单一的网页应用程序。我还用Laravel安全认证的API调用,这是让用户能够保存他们喜欢的房间列表。 特征 该项目的功能主要包括UI组件以及应用程序的总体架构设计。让我们做一个简短的概述: 模态窗口 在列表页面的模态窗口,目的是让用户看房屋的照片获得更好的感觉。 模式窗口很难实现,因为它们不在页面元素的层次结构中

前端技术之:Vue.js应用回退或刷新界面时提示用户保存修改

被刻印的时光 ゝ 提交于 2019-12-05 10:52:18
在实际应用中,运营人员在编辑数据时不希望因不小心点击了浏览器的回退或刷新按钮导致花费了很长时间编辑的数据丢失。可以采用以下两种手段防止运营编辑时丢失数据: 在运营人员刷新页面或回退时,自动保留数据至浏览器端本地存储,在重新进入编辑页面时再将数据从本地存储中加载到编辑界面。 第二种方法是在运营人员刷新或回退时,强提示运营人员有修改的数据尚未保存,询问是否继续。 无认采用哪一种方式,在技术实现上,我们需要首先能够监听到用户执行回退或刷新页面的动作。 实际上,当用户执行页面刷新时,会触发 window 对象上的 onBeforeUnload 事件。所以,我们需要在页面加载时开始监听此事件。在Vue.js应用中,我们可以在Vue.js的 mounted 生命周期事件函数中开始监听。 mounted() { window.onbeforeunload = e => { if (!this.modified) { return; } // 通知浏览器不要执行与事件关联的默认动作 e.preventDefault(); // Chrome 需要 returnValue 被设置成空字符串 e.returnValue = ''; }; }, 有了以上的代码,只要我们在修改了数据以后,将 modified 的值改为true,则可以在刷新整个页面时弹出如下提示: 当用户点击上述对话框的[ 取消 ]按钮后

Vue Router 使用方法

主宰稳场 提交于 2019-12-05 08:47:30
安装 # 直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js Unpkg.com 提供了基于 NPM 的 CDN 链接。上面的链接会一直指向在 NPM 发布的最新版本。 你也可以像 https://unpkg.com/vue-router@2.0.0/dist/vue-router.js 这样指定 版本号 或者 Tag。 在 Vue 后面加载 vue-router ,它会自动安装的: <script src="/path/to/vue.js"></script> <script src="/path/to/vue-router.js"></script> NPM 安装 npm install vue-router 如果在一个模块化工程中使用它,必须要通过 Vue.use() 明确地安装路由功能: import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) 如果使用全局的 script 标签,则无须如此 (手动安装)。 构建开发版本 如果你想使用最新的开发版,就得从 GitHub 上直接 clone,然后自己 build 一个 vue-router 。 git clone https://github.com/vuejs/vue

Vue常用开源项目汇总

北慕城南 提交于 2019-12-05 07:55:12
Vue常用开源项目汇总 前言:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与 现代化的工具链 以及各种 支持类库 结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。易用(已经会了HTML,CSS,JavaScript 即可轻松上手)、灵活(简单小巧的核心,渐进式技术栈,足以应付任何规模的应用)、性能(17kb min+gzip 运行大小、超快虚拟DOM、最省心的优化)、渐进式JavaScript 框架。 Vue相关网站参考:   Vue中文网站: http://cn.vuejs.org/   Vue github开源地址: https://github.com/vuejs/vue   Vue.js专业中文社区: http://www.vue-js.com/   前端开发Vue相关: http://www.opendigg.com/tags/front-vue vue ui组件 element ★9305 - 饿了么出品的Vue2的web UI工具套件 Vux ★6802 - 基于Vue和WeUI的组件库

Working hours selection?

让人想犯罪 __ 提交于 2019-12-05 07:48:06
A reference to another question saw in the stack overflow. I checked for a solution like this but haven't succeeded yet. <div class="form-group"> <label>Working Hours :</label> <div v-for="value in day" class="checkboxFour"<input type="checkbox" id="need" value="value.val" v-model="value.selected" style="width: 10%!important;"> <p>FROM</p> <label for="need" style=" width: 20%!important;">{{value.name}}</label> <input id="value.from" type="time" v-model="value.from" name="value.from" style="width: 30%!important;"> <p>TO</p> <input id="value.to" type="time" v-model="value.to" name="value.to"

VueJS Memory Leak when Switching Routes

a 夏天 提交于 2019-12-05 07:44:59
Whenever I switch routes, I have noticed that Vue components in my application are never destroyed and only created (the # Deleted column is always 0 as I toggle between routes). To be extra clear, the number of new components created is always equal to the number of components displayed on that route i.e. NONE of the Vue components are ever destroyed and every component on the route is recreated when a route is revisited. I've been researching to debug the problem and I know that the following are usually culprits of memory leaks in VueJS. The use of a Global Event Bus and failure to

windows安装npm教程

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 04:17:14
windows安装npm教程 1、在使用之前,先类掌握3个东西,明白它们是用来干什么的: npm: nodejs 下的包管理器。 webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要npm install 就可以安装。 2、nodejs下载网址: https://nodejs.org/en/ 【如果嫌下载的慢,可以下载其他网站上的,别人有现成的,下载的比较快】 3、下载好后,双击安装: 4、默认,下一步: 5、接受协议: 6、选择安装路径: 7、会默认自己添加环境变量: 8、接下去一路“next”,最后点击finish 9、安装好后,对应的各个文件的作用: 10、cmd打开终端: 11、检查是否正常 12、再看看另外2个目录,npm的本地仓库跑在系统盘c盘的用户目录了(没见到npm-cache是因为没有用过, 一使用缓存目录就生成了),我们试图把这2个目录移动回到D:\nodejs 先如下图建立2个目录: 13、然后运行以下2条命令 npm config set prefix "D:\nodejs\node_global" npm config set cache "D:

针对Vue的后台权限功能实现思路(持续更新)

核能气质少年 提交于 2019-12-05 03:29:59
权限是一块设计挺繁琐的功能,尤其是设计到前端SPA应用,前后端的耦合性太强,先屡屡思路,再实现,如果您有好的建议,也可评论留言。 基本的表结构如下 用户表。user 字段 说明 id 用户ID username 用户名 示例 id username 1 赛冷思 前端路由表。routes 字段 说明 id 路由自增ID pid 父级路由ID,默认根路由为0 path 方便操作无线分类的关键字段,后面再说 web_pata 前端路由路径,注意:为方便各种SPA,前后不带斜杠,交给前端自己处理即可 name 路由名称 desc 路由描述 sort 排序,例如同一级路由,可按此字段排序,这个排序结果将会在前端菜单中提现 extra 拓展信息,格式为JSON字符串,例如vue-router中的meta信息 有几项需要注意: 添加功能尽量让前端开发者填写,你懂得 修改时,前端一定要知道,你懂得 删除时,前端一定要知道,你懂得 切记,这些东西都是跟前端相关联。。。 示例 id pid path web_path name desc sort extra 1 0 0, manager 内容管理 管理内容的路由 1 {} 2 1 0,1, article 文章管理 文章管理 1 {} 3 2 0,1,2, list 文章列表 查看文章列表页面 1 {} 4 2 0,1,2, view 文章详情

Vue.js面试题整理

放肆的年华 提交于 2019-12-04 23:11:59
一、什么是 MVVM ? MVVM是 Model-View-ViewModel的缩写。 MVVM是一种设计思想。 Model 层代表数据模型,也可以在 Model中定义数据修改和操作的业务逻辑; View 代表 UI 组件,它负责将数据模型转化成 UI 展现出来, ViewModel 是一个同步 View 和 Model的对象(桥梁)。 在 MVVM架构下, View 和 Model 之间并没有直接的联系,而是通过 ViewModel进行交互, Model 和 ViewModel 之间的交互是双向的, 因此 View 数据的变化会同步到 Model中,而 Model 数据的变化也会立即反应到 View 上。 ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而 View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。 二、 mvvm 和 mvc 区别?它和其它框架( jquery )的区别是什么?哪些场景适合? mvc和 mvvm其实区别并不大。都是一种设计思想。主要就是 mvc中 Controller演变成 mvvm中的 viewModel。 mvvm主要解决了 mvc中大量的 DOM

简单的Vue.js路由配置步骤

北城以北 提交于 2019-12-04 19:28:06
vue路由:可以动态的往根组件里挂载组件 在学习vue路由时,记录一下vue的路由配置过程: 1.安装 npm install vue-router --save / cnpm install vue-router --save 2、引入并 Vue.use(VueRouter) (main.js) import VueRouter from 'vue-router' Vue.use(VueRouter) 3、配置路由 1、创建组件 引入组件 2、定义路由 (建议复制s) const routes = [ { path: '/foo', component: Foo }, { path: '/bar', component: Bar }, { path: '*', redirect: '/home' } /*默认跳转路由*/ ] 3、实例化VueRouter const router = new VueRouter({ routes // (缩写)相当于 routes: routes }) 4、挂载 new Vue({ el: '#app', router, render: h => h(App) }) 5 、根组件的模板里面放上这句话 <router-view></router-view> 6、路由跳转 <router-link to="/foo">Go to Foo<