学完vue2还是决定先做一个比较经典,也比较大的项目来练练手好一点,vue3的知识不用那么着急,先把vue2用熟练了,vue3随时都能学。
这个项目确实很经典包含了登录注册、购物车电商网站该有的都有,后面还会结合elementUI构件后台管理界面。拭目以待!
vue create创建vue的脚手架环境

里面什么是什么配置文件这些就不同多说了,前面已经说过了,来说一下没有说过的一些配置。
当我们npm run serve跑项目的时候自动打开浏览器,对package.json启动serve的命令加一个open参数

关闭eslint校验功能

src文件简写,配置他的别名,因为后面可能经常会引入这个文件夹下的东西,经常要./或者../等,所以直接配置src文件夹别名为@,在jsconfig.js里面配置,注意新版脚手架一般都已经配置好了


首先分析下组件
路由组件:首页(home)、搜索页(search)、登录页(login)、注册页(register)
非路由组件:头部header(首页、搜索页、登录、注册)、尾部footer(首页、搜索页)
根据以前创建一个项目的步骤,首先分好组件,然后完成静态页面创建,可以先放在App里面运行一下,然后把各自的代码放到组件里面去,拆分组件完成静态页面嘛,第二步就是完成完成动态数据的创建这些,第三步就是这些业务逻辑事件这些的完成,所以这里先完成Header和Footer的文件夹创建,注意以前是直接在components里面创建一般组件,现在是需要个文件夹里面再来个index.vue,因为这个组件可能有其他的依赖比如一些图片等所以还在这个文件夹里面操作一些其他的东西。

然后这里的css格式采用的是less格式,所以需要下载 less和less-loader

组件引入到App组件后发现还是有点css没有完整,那是因为有一些公共样式,需要引入到public文件夹,同时link方式引入到index.html页面,这里同时也要注意一下,后面打包的时候在public文件夹下面的文件会原封不动打包到dist目录里面去
启动项目发现一个错误,就是代码里面有一个需要引入images里面的图片,所以前面说需要将一个组件单独创建一个文件夹,因为还有可能放入其他东西的


现在就可以启动成功了,这个时候需要将公共样式放到public下面,并link引入到index.html
静态组件导入完毕

下面开始布置路由组件,刚才分析的四个路由组建配置在pages文件夹下,同样的也是采用文件夹形式

然后就开始配置router配置文件

在入口文件导入并加入vm配置项

最后在该呈现我们路由组建的位置用router-view标签进行占位即可完成路由的搭建
两个跳转方法,一个是router-link,一个是通过router这个api的push、replace方法,前者是声明式导航,后者是编程式导航,声明式导航能做到的编程式导航都可以做到,但是编程式导航还可以完成一些逻辑要求,比如我们点击登录这个时候不光是要跳转还要给数据发到ajax服务器,所以这个时候只能编程式导航了。
首先我们的登录注册直接跳到登录注册的页面上去,没有其他逻辑,所以直接用router-link

点击搜索按钮后期有一些业务逻辑,采用编程式跳转


在项目跑起来后,访问/根目录立马会跳转到首页,一个新的路由,匹配的key为*,一个全新的配置项 redirect值为我们要重定向的组件路径

现在的问题,我们home和search这两个组件有footer,但是登录和注册没有footer组件,通过v-show来做,主要是判断的依据,可以用到当前切换过来的这个$route这个api里面的path或者name,但还是那个老问题,如果需要配置几百个路由组件就有点麻烦了,这里可以给meta路由元信息添加自定义信息,谁该显示,谁不该显示,直接v-show判断这个meta值就可以了


当我们点击搜索要将我们的参数传到搜索页面,有两种参数,一种是query一种是params看你想要哪种,如果要获取params动态参数那么首先要到路由配置项将我们匹配的规则修改一下,注意占位要加引号,并且params要发参数过去,对象配置里面只能用name,所以最好这里也把name配置好

这里我把两个参数都获取过来

search界面接受参数

路由传参对象写法path能和params一起使用吗?
不能
如何指定params参数可传可不传?
如果配置路由项的时候,已经配置好了params的路由匹配规则,但是你传参的时候你又不传params,那么这个时候就会出现bug路径会出现问题


所以真的想要实现这个动态参数可传可不传的效果需要在路由配置里面加上一个?,跟正则里面一样?表示0到多个

这样就不会出现路径问题了,这个params参数就可以可传可不传了。
上面这种方法虽然可以实现params参数可传可不传,但是如果传的是一个空字符串又会出现bug,路径又会出现问题,search这个路径又没有了,这个要怎么解决?
在我们传params对象传参这里通过一个亦或语法来解决

路由组件能不能传递props数据?
可以,而且有三种第一种是写死的数据,在路由配置里面写


第二种是值为true,表示会将传过来的所有params数据接受到


第三种是函数的形式,并且可以拿到这个路由组建的$route,,并且跟计算属性一样靠的就是和这个返回值,那么就可以拿到query了,params更不用说了

如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我有一个任务列表(名称、starts_at),我试图在每日View中显示它们(就像iCal)。deftodays_tasks(day)Task.find(:all,:conditions=>["starts_atbetween?and?",day.beginning,day.ending]end我不知道如何将Time.now(例如“2009-04-1210:00:00”)动态转换为一天的开始(和结束),以便进行比较。 最佳答案 deftodays_tasks(now=Time.now)Task.find(:all,:conditio
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/
我安装了ruby、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom