本文将分享0-完全开源的Vue.js入门级教程:HelloVue,发车啦!的详细内容,并且还将对vue.js源码进行详尽解释,此外,我们还将为大家带来关于AppleMaccocoa入门级教程-Hell
本文将分享0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!的详细内容,并且还将对vue.js源码进行详尽解释,此外,我们还将为大家带来关于Apple Mac cocoa入门级教程- HelloWorld!、AutoVue教程:如何在64位Linux上安装AutoVue、Hello Vue: Vue快速入门教程、Hello,Vue.js -----新手如何安装Vue.js开发环境的相关知识,希望对你有所帮助。
本文目录一览:- 0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!(vue.js源码)
- Apple Mac cocoa入门级教程- HelloWorld!
- AutoVue教程:如何在64位Linux上安装AutoVue
- Hello Vue: Vue快速入门教程
- Hello,Vue.js -----新手如何安装Vue.js开发环境
0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!(vue.js源码)
本教程基于 Vue.js 2.x
欢迎来到 HelloVue-todo-tutorial,这个教程将手把手教你从零开始使用 Vue 搭建一个 Todo(待办事项)应用。
这个教程可以看做是 HelloDjango 系列的番外篇,通过这个教程熟悉 Vue 的基本概念后,我们将使用前后端分离的方式,开发 Django 博客应用。
这个教程还是 HelloVue 系列教程的开篇,这个系列教程将带你循序渐进地深入 Vue,通过实战的形式学习 Vue 开发的方方面面。
同样,本教程完全免费、开源,首发于 HelloGitHub 公众号。
Vue.js 是什么
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
在 GitHub 上有 17.4 万 star 排在总榜第三名。(截止本文发布时的统计数据)
如果没看懂上面说的,看着这句就行:Vue.js 是当前最流行的开源前端框架之一,它上手容易、是前端程序员必备技能,学它准没错。
本教程特色
这个教程是完全面向新手的,你可能只了解过一点点的 HTML 知识,花了 10 多分钟看了一点 JavaScript 的基础教程,甚至于你完全不懂什么是 CSS。都没有关系!
这篇教程也不会一上来就先教你配置复杂的前端工程化项目(我在网上搜集的很多教 Vue 开发 Todo 应用的博客都是这么做的),这很容易把一个初学者吓跑。事实上 Vue 不过是一个 JavaScript 库,我们仅仅需要准备一个可以输入代码的文本编辑器和一个现代化的浏览器就可以运行 Vue 应用。因此本教程将抛开繁琐的前端工程化配置过程,所有的代码都将在一个单一的 HTML 文件里编写,用浏览器打开即可运行查看效果,按 F12 就可以进行代码调试。
我们的项目最终完成效果就是下面这个样子:
你可以看到应用的界面处于上个世纪 80 年代的水平,因为我们使用了浏览器原生的 UI 而未加任何 CSS 样式。采用这种风格有很大的好处,这样我们可以将注意力完全集中在 Vue 的使用上,而不用关注那些多余的元素样式。毕竟连 Google、Amazon 和 Facebook 等很多知名公司的应用也采用这种极简化风格设计,而且小米创始人雷军也说过"没有设计的设计就是最好的设计",说明这种设计还是有可取之处的。
当然采用一些如 Boostrap、Materialize 等框架后很容易为我们的 Vue Todo 应用加上样式,如果你做了一个风格不一样的 Todo,欢迎提一个 pull requests 给我。
使用一个 Todo 应用来讲解 Vue 的核心特性是非常合适的,因为它麻雀虽小,但五脏俱全。一个 todo,几乎可以囊括 Vue 中计算属性、侦听器、指令、动态样式绑定、条件渲染、列表渲染、事件处理、表单绑定、组件、组件间的通信、自定义指令等核心特性。通过一个 todo 的例子来理解这些特性能帮助我们做什么事情,然后回过头去看相对枯燥的官方入门文档,一定会对 Vue 的这些特性有一个更加深刻的了解。
开源项目地址:https://github.com/HelloGitHub-Team/HelloVue-todo-tutorial
好的,让我们准备一个文本编辑器和一个浏览器,然后开始吧!
本文分享 CNBlog - 削微寒的程序员之路。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Apple Mac cocoa入门级教程- HelloWorld!
cocoa教程1 - HelloWorld !
来源:www.CocoaDev.cn
首先,使用Xcode来创建一个新的project. 这里假设你已经安装了开发工具. 如果还没有,可以用开发光盘或者
- 打开Xcode,它的默认安装路径是 /Developer/Applications/
- File菜单 : New Project...
- 选择 "Cocoa Application" 这个模板. 一开始常用的两个模板就是这个和 "Cocoa Document-based Application". 后者适用于具有多个相似窗口的应用程序,比如文本
- 点击 "Next"
- 输入一个Project名字 (默认的路径是你的用户目录,这个没什么问题). 输入 "HelloWorld" .
- 点击 "Finish".
- 这时你的 project 窗口就出现了.
- 现在看看产生了哪些文件. 在左边一栏,点击 "Classes","Other Sources",和 "Resources" 左边的小箭头.
Classes 现在应该是空的. 你可以在这里创建新的类文件. 对于大的project,可以生成更多象这三个这样的组别,以便于管理,不过现在这样就好了.
Other Sources 里面是默认的 "main.m" 文件和另一个 "HelloWorld_Prefix.pch". 大多数时候你不用修改这两个文件. "main.m" 里面是应用程序的入口.
Resources 里有三个文件:
Info.plist 应用程序的设置文件,应用程序名,版本号,
MainMenu.nib,是一个 InterfaceBuilder 文件,用于存储所有界面项目. 后面会说到.
InfoPlist.strings,含有关于系统信息的字符串,如果打开看就一目了然了.
后两个左边也有个小箭头,这是因为本地化的相应的文件要分别加入到这两个组别.
- 现在尝试编译并执行,可以点击窗口上面的 "build and go",或者使用 Build 菜单里面对应的命令.
在一阵短暂的时间后会出来一个空的窗口. 现在退出这个新的 Hello World 应用程序.
使用 Interface Builder 来定义用户界面
在这一步,我们用 Interface builder 来轻微改变一下界面.
- 首先双击 Xcode 里面的 MainMenu.nib . 这就会启动 Interface Builder 并打开这个 .nib 文件.
- 看看这个 "MainMenu.nib" 窗口. 这就是刚刚打开的文件. Interface builder 应该也打开了它的两个项目: "MainMenu",和 一个空的 window (对应于 MainMenu.nib 里的 Window).
- 现在改一下 MainMenu. 点击第一个菜单,并将所有的"NewApplication" 改为 "HelloWorld".
你可以更改其他的菜单,如果需要的话,或者删除一些,因为他们在这个教程里用不上,但是也没有害处,就保留在那吧.
- 现在在点击窗口 window,往里添加一些东西. 如果它不在桌面上的话,双击 "MainMenu.nib" 里面的 "window" 使它出现.
在 "Tools" 菜单里,选择 "Attributes Inspector" 出来一个新的面板,叫 "Window Attributes".
- 更改 window 的标题为 "Hello World". 在 "Window Attributes" 的 "Title" 一栏编辑.
- 调整这个窗口的大小,把它弄小一点.
- 在 "Window Attributes" 里去掉 Resize 左边的勾,这样程序的用户将不能改变窗口的大小.
- 现在点击 interface builder 一开始打开的一个 library 面板,点开 Cocoa,选择 View & Cells.
- 滚动右侧移动条,使出现 "Label",将其用鼠标拖到 window 中. 双击这个Label来修改其文本内容.
- 有兴趣的话,可以在 window 里添加其他的东西.
- 使用 "Command-R" 快捷键可以立刻查看界面的效果
- 输入 "Command-Q" 退出测试模式.
- 存储这个改动并退出 Interface Builder.
Back in Xcode (回到Xcode)
- 现在点击 "Build and Run" 按钮. 你这样就可以看到 MainMenu 里面的改变以及 window 里面的内容.
- 如果退出Xcode,编译好的程序可以在project目录的build目录里找到.
就这些了吗?
是的,对这个教程而言,是这样. 当然,这个教程并没有展示多少,但希望能帮你看到使用苹果的工具和Cocoa能很容易的创建真的不错的用户界面.
可以自己熟悉一下用户界面里可以使用的各种控件. 虽然暂时不知道怎么使用,但是以后会接触到.
下一个教程将增加objective-C代码,并介绍 Outlets 和 Actions.
cocoa教程2 - Outlets 和 Actions
第一步是连接
- 首先用Xcode生成一个新的 project,取个名叫 Electricity.
- 双击 project 里的 "MainMenu.nib",启动 Interface Builder.
- 从 Library 面板里拖下面的控件到 Window 窗口里,是一个滑动条和一个文本编辑框.
- 如果现在保存并执行这个应用程序,会发现这两个部件已经能工作. 不过你肯定想做一些比这更多的,比如在文本框里显示滑动条的数值.
要做到这个,在按住Ctrl的同时,左键点住滑动条,拖动鼠标到文本框上,然后放开鼠标. 屏幕上会出现一个连接菜单.
- 在 "Received Actions" 里选择 takeIntValueFrom. 这是告诉文本框从滑动条获得整数值,就是指针所在位置.
- 保存并测试这个应用程序,现在文本框显示的是滑动条的指针位置的数值.
一个控制部件
- 现在进一步,在窗口里添加下面的两个部件,一个按钮,一个标签:
- 这里想要做的是让下面的标签显示滑动条的指针位于左边还是右边. 要做到这个,必须增加一些代码 (哈哈,终于要动手写了).
- 首先要创建一个控制 "controller" 物件. 象它的名字说的那样,这个 controller 是用来控制窗口里发生什么的. 如果想知道一些更详细的介绍,苹果的文档是个好的阅读资料,读读关于 MVC (Model / View / Controller),(模型 / 视图 / 控制器) 的部分. 本教程暂时不去理会这些.
在 Library 面板里点开 Cocoa 后,选择 Objects & Controllers. 拖动一个 "NSObject" 到 MainMenu.nib 窗口里. 这是根物件 root object,我们的 controller 物件只需从它继承一些通用的性质即可.
在 Tool 菜单里选择 Identity Inspector,在出现的 Identity 面板里在 class 那一栏输入 "ElectricityController"
- 然后添加两个 outlets 和一个 action. Outlets 便于你在代码中访问其他部件,它相当于函数编程里一个传递数据的指针类型参数. Actions 是一个被某个事件(比如点击一个按钮)激活的方法,也就是本控制器可以被外界调用的一个函数.
- 添加下面的 outlets 和 actions:
- 接着,来编写相应的代码. 因为Xcode和interface builder在这方面的同步不是很好,我们的方法是先到Xcode里,选择 File 菜单里的 New file,然后在出来的窗口里选择Cocoa里面的Objective-C Class,接下来输入 "ElectricityController.m" 作为这个新建立类的文件名,点击 finish 结束,在project的class一组可以看到新增加俩个代码文件. 然后回到 interface builder,点击选择 MainMenu.nib 里的 "ElectricityController",接着在 File 菜单里选择 write class file,在出现的窗口里,默认路径应该是本project的路径,如果不是,请选择回来. 然后点击 Save 保存. 下面会提示你要 merge 合并,还是 replace 替换,选择 replace.
- 现在回到Xcode,双击打开新增加的那两个文件,你会看到下面的代码已经在里面了.
代码:
#import <Cocoa/Cocoa.h>
@interface ElectricityController : NSObject {
IBOutlet id textZone;
IBOutlet id topSlider;
}
- (IBAction)whereButtonAction:(id)sender;
@end
代码:
#import "ElectricityController.h"
@implementation ElectricityController
- (IBAction)whereButtonAction:(id)sender {
}
@end
第一个是头文件,含有这个类的定义,第二个含有实现这个类的代码,现在基本是空的.
- 现在回到 interface builder,来做必要的连接,还记得按住ctrl,然后左键点击并拖动鼠标进行连接吗?
从 ElectricityController 到滑动条 : 选择 topSlider 这个 outlet.
从 ElectricityController 到最下面的文本标签 : 选择 textZone 这个 outlet.
从 按钮 到 ElectricityController : 选择 Received Actions 里的 whereButtonAction.
让我们来修改代码
- 在 interface builder 里点击 File 菜单,选择 Save 保存. 回到Xcode来修改 ElectricityController.m 双击打开它.
- 我们要修改点击按钮所发生的事件,这将用到前面建立的 action.
用下面的代码替换 -whereButtonAction
代码:
- (IBAction)whereButtonAction:(id)sender {
if ([topSlider intValue]<50)
[textZone setStringValue:@"Cold"];
else
[textZone setStringValue:@"Hot"];
}
如果还没有,现在是时候你要认识一下 Objective-C 语言了. 比如去苹果网站阅读一下相关的文档.
那么,这些代码是做什么呢?
代码:
if ([topSlider intValue]<50)
第一行是问滑动条的数值是多少,并与50进行比较
代码:
[textZone setStringValue:@"Cold"];
如果小于 50,设置文本标签的内容为 Cold. @"Cold" 代表一个 Nsstring 类型的字符串常数.
代码:
else
[textZone setStringValue:@"Hot"];
否则做同样的事情,但是显示 "Hot".
试试你的应用程序!
- 点击 Build and Run 按钮测试你的代码!
新Project
先创建一个新的project :
启动 Xcode
File 菜单 : New Project
在对话框里,选择 "Cocoa Application"
点击 Next
Project 名 : POPreferences
点击 Finish
现在来设置一个 preference 预置文件:
点击 Targets 组别左边的小箭头
双击里面的 POPreferences
点击 Propertities
在 identifier 一栏,输入 "org.projectomega.popreferences",或者其他你喜欢的. 应用程序的预置设置将存储在一个名为这个的plist文件中,该文件的默认路径是 ~/Library/Preferences/
这里使用的是 java类型的规则来命名这个 preference 预置文件,这也是苹果推荐的 (某种程度是URL地址反过来写). 这样做主要的一个好处是 preference 文件将会按出品公司归在一起.
使用 Interface Builder 来设计
现在来设计本教程要用到的对话框.
在 Xcode 里展开 "Resources" 组别
双击 MainMenu.nib 启动 Interface Builder 打开它.
把你的窗口改成象下面的样子. 这包括大多数 preferences 要用到的控件. Radio控件默认是2个供选择项,可以在Attributes Inspector里的Cells一栏改成需要的数目. 另外,需要在 Radios 每一项的Attributes Inspector里设置它们的tag分别为:0,1,2,3,对应于 Radio 1,Radio 2,Radio 3,Radio 4,在后面将用到. 要选中单独的某个 Radio 项,可能需要点击几次对应项,直到这一项被高亮显示.
创建 Outlets/Actions
现在要为这个对话框生成一个 controller 物件,并添加 outlets/actions,用前一个教程里同样的方法.
点击 Library 面板
拖动一个 NSObject 到 MainMenu.nib 窗口内
在Identity面板里命名class为 " PrefController "
添加5个 outlets (每个控件一个) 和 2个 actions,并按下图命名:
现在,创建 PrefController 类:
象上个教程里一样,先回到Xcode,
File 菜单,New file,选择 Objective-C Class,命名为PrefController.m,finish完成,生成 PrefController.h and PrefController.m.
再回到 Interface Builder,确认选择 MainMenu.nib 里的 PrefController,然后
File 菜单,Write class file,选择project所在路径(如果默认值不是的话),之后 replace 替换.
现在Xcode里面这两个新文件应为以下内容:
代码:
#import <Cocoa/Cocoa.h>
@interface PrefController : NSObject {
IBOutlet id PrefEdit;
IBOutlet id PrefPopup;
IBOutlet id PrefRadios;
IBOutlet id PrefSlider;
IBOutlet id PrefSwitch;
}
- (IBAction)PrefRestoreAction:(id)sender;
- (IBAction)PrefSaveAction:(id)sender;
@end
代码:
#import "PrefController.h"
@implementation PrefController
- (IBAction)PrefRestoreAction:(id)sender {
}
- (IBAction)PrefSaveAction:(id)sender {
}
@end
连接 Outlets/Actions
回到 Interface Builder 来连接 actions 和 outlets 到不同的部件,还是使用 ctrl+鼠标拖动.
从 "Restore" 按钮到位于 MainMenu 里的 " PrefController ",选择Receive Actions里的PrefRestoreAction
同样的,连接 "Save" 按钮到" PrefController "的 PrefSaveAction
再从 PrefController 连接 outlets 到相应的部件. 最后Connection Inspector面板里应该显示如下:
最后从 "File's Owner" 连接到 " PrefController",并选择 delegate 委托. 这样关于应用程序开始,关闭等等的信息就会通知 PrefController,方便我们使用对应的委托方法去处理这些信息,比如本project的预置值的读取和存储比较适合于这些时候处理.
头文件
保存并退出 Interface Builder,回到 Xcode 添加代码 !
将 IBOutlet 的类型id细化为相应的具体类型是一个好习惯,所以将 " PrefController.h" 文件改成下面的样子:
复制内容到剪贴板
代码:
#import <Cocoa/Cocoa.h>
@interface PrefController : NSObject
{
IBOutlet NSTextField* PrefEdit;
IBOutlet NSPopUpButton* PrefPopup;
IBOutlet NSMatrix* PrefRadios;
IBOutlet NSSlider* PrefSlider;
IBOutlet NSButton* PrefSwitch;
}
- (IBAction)PrefRestoreAction:(id)sender;
- (IBAction)PrefSaveAction:(id)sender;
@end
真正的代码
现在来编辑 " PrefController.m". 下一节将解释细节.
复制内容到剪贴板
代码:
#import "PrefController.h"
@implementation PrefController
- (void)applicationDidFinishLaunching:(NSNotification *)notification
{
// 自动存储窗口位置
[[PrefEdit window] setFrameAutosaveName:@"PrefWindow"];
// 自动恢复预置值
[self PrefRestoreAction:self];
}
- (IBAction)PrefRestoreAction:(id)sender
{
// 读取 preference 预置文件
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 文本框
// 获得 preference 预置值,或者设置默认值
Nsstring *mystr = [defaults stringForKey:@"EditField"];
// 如果 预置值,或者设置默认值不存在,生成一个
if (mystr == nil)
mystr = @"Empty";
// apply the value to the dialog
[PrefEdit setStringValue:mystr];
// 弹出菜单
// 获得 preference 预置值,或者设置默认值
int pos = [defaults integerForKey:@"Popup"];
// 如果 预置值,0 会被返回,也可以做为默认值
// 将这个值应用到对话框
[PrefPopup selectItemAtIndex:pos];
// RAdio 按钮
int posradios = [defaults integerForKey:@"Radios"];
[PrefRadios selectCellWithTag:posradios];
// 滑动条
int slider = [defaults integerForKey:@"Slider"];
[PrefSlider setIntValue:slider];
// SWITCH 按钮
int myvalue = [defaults integerForKey:@"Switch"];
[PrefSwitch setIntValue:myvalue];
}
- (IBAction)PrefSaveAction:(id)sender
{
// 读取 preference 预置文件
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 文本框
// 从文本框获得文本
Nsstring* mystr = [PrefEdit stringValue];
// 存储这个文本物件
[defaults setobject:mystr forKey:@"EditField"];
// 弹出菜单
// 获得选项值
int pos = [PrefPopup indexOfSelectedItem];
// 存储这个值
[defaults setInteger:pos forKey:@"Popup"];
// RAdio 按钮
int posradios = [PrefRadios selectedRow];
[defaults setInteger:posradios forKey:@"Radios"];
// 滑动条
int slider = [PrefSlider intValue];
[defaults setInteger:slider forKey:@"Slider"];
// SWITCH 按钮
int myvalue = [PrefSwitch intValue];
[defaults setInteger:myvalue forKey:@"Switch"];
}
@end
应用程序启动
复制内容到剪贴板
代码:
- (void)applicationDidFinishLaunching:(NSNotification *)notification
{
// 自动存储窗口位置
[[PrefEdit window] setFrameAutosaveName:@"PrefWindow"];
// 自动恢复预置值
[self PrefRestoreAction:self];
// 显示窗口
[[PrefEdit window] makeKeyAndOrderFront:nil];
}
信号 "-applicationDidFinishLaunching" 在应用程序启动时被发出,PrefController 将收到. 这是一个好的地方来恢复preference 预置值. 下面这行做的就是这些:
复制内容到剪贴板
代码:
[self PrefRestoreAction:self];
- 这也是个好的地方存储窗口位置. 并不需要写好几行代码来实现这个,Cocoa framework 框架提供了一个只需一行代码的命令来完成这个任务: "-setFrameAutosaveName"
复制内容到剪贴板
代码:
[[PrefEdit window] setFrameAutosaveName:@"PrefWindow"];
存储 preference 预置值
- 首先,你需要读取那个 default 默认文件,它的名字在一开始就已经确定了:
复制内容到剪贴板
代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- 从控件里获得对应的数值 (或者就是一个已经存在的 variable 变量)
- 存储这些值到 default 默认文件. 在这里,比如把 preference 的 "myvalue" 存到 "Switch" 这个 Key.
复制内容到剪贴板
代码:
[defaults setInteger:myvalue forKey:@"Switch"];
恢复 preference 预置值
- 首先,象前面一样,你需要读取那个 default 默认文件.
复制内容到剪贴板
代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- 接着,下面这行提取 preference 里叫 " Popup" 的值. 如果默认文件里还没有这一项,返回的值将是 0,可以接受为最初的默认值. 如果是字符串 string,对应的key不存在时返回的将是 "nil".
复制内容到剪贴板
代码:
int pos = [defaults integerForKey:@"Popup"];
- 最后,恢复的这些值可以恢复到对应的控件上.
检验你的应用程序如果一切没有问题,你会得到一个结果.
AutoVue教程:如何在64位Linux上安装AutoVue
很多用户在Linux 64位上使用AutoVue时会出现安装方面的问题。在Linux 64位上安装AutoVue(这是一个32位应用程序)可能很棘手,因为AutoVue将要求某些库是32位的而不是64位。在许多情况下,服务器会将由于缺少32位库的相关问题记录下来。AutoVue需要这些库:32位(libGLU,libGL,libz,libbz2,libXt,libXp,libXtst和libXrender)。
【AutoVue系列产品包含:AutoVue 3D Professional Advanced、AutoVue Electro-Mechanical Professional、AutoVue EDA、AutoVue Office、AutoVue 2D Professional】
你可以通过使用locate命令来检查特定库丢失的是32位还是64位。例如,找到libGL应该返回:
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/usr/lib/libGLU.so
/usr/lib/libGLU.so.1
/ usr / lib /libGLU.so.1.3.060501
libGL的位置如下:
/usr/lib64/libGL.so.1
这将表明你已安装64位库,AutoVue还需要32位库。
【本文作者慧都Elyn,转载注明出处】
Hello Vue: Vue快速入门教程
Vue快速入门教程,此教程包括使用Kendo UI for Vue的组件。希望通过此教程能够成为你学习vue的一个很好的起点。这其中还包含一个可扩展的事例,如果你感兴趣可以深入学习下去。
本教程针对的是第一次使用Vue资源管理器。我将向您展示如何使用Vue创建一个简单的示例,然后我将添加一些交互性和UI组件,最后添加更多功能和Kendo UI组件。虽然本教程演示非常基础,但它概述了使用Vue添加特性和功能的所有关键元素。扩展演示代码并交换更复杂的组件非常容易。我的例子,如Vue本身,是可扩展的。
ps: 框架的名称在技术上是“Vue.js”,有些地方甚至会修改版本号以获得“Vue.js 2”,但大多数人只是在常用中使用“Vue”。本教程侧重于语言,并未涵盖更重要的Vue-cli等高级主题,但应该在以后会有介绍。
让我们开始吧!
Hello, world!
首先,让我们先来了解一下开始使用Vue是多么容易。我们将从流行的“hello,world”应用程序的Vue实现开始。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Clash</title>
<!-- the star of the show - the Vue library! -->
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<script>
// when life is settled, load up the fun stuff
document.addEventListener(''DOMContentLoaded'', function () {
new Vue({
el: ''#sg1'',
// define data - initial display text
data: {
m1: "You got to let me know"
}
})
})
</script>
</head>
<body>
<!-- text -->
<div id="sg1">
<p>{{ m1 }}</p>
</div>
</body>
</html>
我们做了什么
首先,在文档<head>
中,我们给它标题。但是写标题是一个不该被遗忘的好习惯。
接下来,我们从CDN加载Vue库。当你开始使用时,你可能会切换到npm(这是Vue的[推荐安装方法](https://vuejs.org/v2/guide/in...)),但CDN是最简单和最便携的方式。
首先,让我们跳到文档<body>
。在这里,我们有一个<div id =“sg1”>
的元素。
<div id="sg1">
<p>{{ m1 }}</p>
</div>
Vue的核心是能够使用简单的模板语法以声明方式将数据呈现给DOM。
跳回到文档<head>
,我们看到一些代码在通过设置事件监听器加载DOM时触发。如果你来自jQuery世界,这就像$(document).ready()
`,但在这里没有jQuery。
接下来,我们有我们的Vue代码,这里所做的就是设置“m1”的内容:
new Vue({
el: ''#sg1'',
// define data - initial display text
data: {
m1: "You got to let me know"
}
})
我们从这里开始使用Vue()函数创建一个新的Vue实例。有了这个,我们传递它配置。在这里,我们只在数据部分设置m1的初始值。 (稍后会详细介绍。)我们还告诉它我们想要使用哪个元素,el:''#sg1''
类似于document.getElementById(''#sg1'')
。
当我们运行它时,我们得到:
这很简单,但不是很有用。但是,它确实让我们了解如何设置Vue应用程序。到目前为止,它看起来并没有太大的不同。但是这里发生了一些有趣的事情,我们还没有看到。我们将探讨下一个例子中的内容。
增加交互性
接下来,我们添加一个按钮。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Clash</title>
<!-- the star of the show - the Vue library! -->
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<script>
// some data we''ll use
var action = [ "Go", "Stay"];
var result = [ "It will be double", "There will be trouble" ];
// when life is settled, load up the fun stuff
document.addEventListener(''DOMContentLoaded'', function () {
new Vue({
el: ''#sg1'',
// define data - initial display text and set the text on the button
data: {
m1: "You got to let me know",
btext: action[0]
},
// define the methods - alternate between the two values
methods: {
staygo: function () {
var sel = ( this.btext == action[0] ) ? sel = 1 : sel = 0;
this.m1 = result[sel];
this.btext = action[sel];
}
}
})
})
</script>
</head>
<body>
<!-- text and the button -->
<div id="sg1">
<p>{{ m1 }}</p>
<p><button v-on:click="staygo">{{ btext }}</button></p>
</div>
</body>
</html>
在标记中,我们添加了按钮。这是一个基本按钮,我们通过附加调用staygo()
的侦听器定义了一个单击事件的动作,并且我们为按钮文本设置了一个名为“btext”
的占位符。
回到代码中,我们在配置中添加了一个方法属性。在其中,我们定义了staygo()
以匹配按钮中的那个。这是它变得有趣的地方。
methods: {
staygo: function () {
var sel = ( this.btext == action[0] ) ? sel = 1 : sel = 0;
this.m1 = result[sel];
this.btext = action[sel];
}
}
我们还在数据区域添加了文本,为按钮提供了初始标签。在该方法中,我们基本上看到按钮上的内容,然后在两行文本中的一行和两个按钮标签之一之间切换。
data: {
m1: "You got to let me know",
btext: action[0]
}
这里发生的有趣的事情是我们现在已经链接了数据和DOM,我们的应用程序是被动的。当我们改变m1的值时,显示的文本被改变,当我们改变btext的值时,按钮文本被改变。没有什么需要做的了。这也发生在我们的第一个例子中,但我们没有看到,因为我们只是将文本留下了初始值。
我们看到文字“You got to let me know”,按钮标有“go”。正如任何经典朋克的粉丝都知道的那样,如果你去“There will be trouble”并且文字也会为此改变。同时,决定留下来,我们唯一的选择是“stay"”,我们将按钮上的标签更改为“stay"”。
如果您现在单击“stay”,则文本将更改为“It will be double”。
你可以来回点击,然后决定你的文本显示。
添加Kendo UI组件
为了简单起见,我在这里使用了一个基本的下拉组件,但如果你想添加一个网格或图表或其他更复杂的组件,那么这个过程就大致相同了。此外,它有点长,所以我将列出下面每个部分的添加内容,并在GitHub上列出完整的代码。
首先,我们在标题中添加了一个部分,以引入Kendo UI样式,基本库和此组件的库:
<!-- load Kendo UI stylesheets -->
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.913/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.913/styles/kendo.default.min.css"/>
<!-- load Kendo UI libraries -->
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.3.913/js/kendo.all.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser-polyfill.min.js"></script>
<!-- load Kendo UI for Vue -->
<script src="https://unpkg.com/@progress/kendo-dropdowns-vue-wrapper/dist/cdn/kendo-dropdowns-vue-wrapper.min.js"></script>
这包括组件的一些样式,我们依赖的一些库,以及我们将使用的实际组件的库。
我们还在<body>
部分添加了一个<div>
元素。在这里,您会看到一些新文本以及<kendo-dropdownlist>
元素:
<!-- second text and the DropDownList component -->
<div id="sg2">
<p>{{ m2 }}</p>
<h4>Singer:</h4>
<kendo-dropdownlist :data-source="singerOptions"
:data-text-field="''text''"
:data-value-field="''value''"
@change="onChange">
</kendo-dropdownlist>
</div>
在这里,您可以看到我们已经指定了实际标签的数据源(文本项数组),调用文本字段的内容,调用返回的值,最后我们告诉它如何处理具体行动。在这种情况下,它是@change,它在选择被更改时触发(不仅仅是选中,而是实际更改为其他选择)并且我们已经定义了onChange()
。您可以触发许多其他事件,还可以设置大量其他参数来控制DropDownList组件的行为。有关这方面的更多信息,请查看DropDownList组件的文档。
现在,回到脚本,我们为这个新部分添加了新代码:
new Vue({
el: "#sg2",
// data is the lyric line and the two options for the DropDownList component
data: {
m2: problem[0],
singerOptions: [
{ text: option[0], value: ''0'' },
{ text: option[1], value: ''1'' }
]
},
// and the method here just updates the text based on the singer selection
methods: {
onChange: function(e) {
this.m2 = problem[e.sender.value()];
}
}
})
我们添加了两(2)个数据项:一个用于文本,“m2”,第二个是实际由DropDownList组件使用的数组。最后,我们有一个方法,在DropDownList组件中更改选择时调用,该方法根据选择设置文本“m2”,与e.sender.value()
一起传递。
我们的应用现在看起来像这样:
我们仍然有原始的“hello,world”文本和按钮,但现在我们也看到了新的词和下拉列表。如果我们点击下拉菜单,我们会得到两个选择:“Mick”或“Joe and Joe”。
在下拉菜单中选择不同的选项,上面的文本也将相应的发生变化。
下一步
现在你已经看到了开始使用Vue是多么容易,下一步是什么?
在这个小例子之后你可以找到各种各样的方向。但是在这里你有一个实际的工作示例,交互性和所有连接的Kendo UI组件。如果您之前没有使用过Vue,那么这可以超越基本的“hello,world”示例,这些示例是需要确保你具备所有设置和工作的基础知识。从一个复杂的例子开始,从来没有什么帮助,因为当它不起作用时你通常不知道为什么,这就是为什么“你好,世界”的例子如此受欢迎。
那么接下来你可以学习些什么了?
- Vuejs.org
- 学习Vue 2:在Laracasts上一步一步
- Scrimba9个互动截屏视频来学习Vue
Hello,Vue.js -----新手如何安装Vue.js开发环境
近年来,Vue.js越来越火,原因是它集各家之所长,比说说:它集React和Angular的优点,更关键的是Vue.js本身就是由中国开发者开发的一款前端框架,所有很多中国朋友们看起来不会那么费力。俗话说:“要想富,先修路。”,那么想学习Vue.js首先就必须安装好Vue.js开发环境以及了解一下Vue项目运行机制是如何,话不多跟着我一起来跟Vue.js说:“Hello Vue.js”。
Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程。只需几分钟即可创建并启动一个带热重载、保存时静态检查以及可用于生产环境的构建配置的项目。由于Vue.js的命令行式安装是基于node.js的所有说首先你要安装一下node.js而且如果你的电脑是Windows版本的还有安装一下git,这两个东西可以直接在1百度搜索,如何直接点击运行安装即可,非常简单在此就不赘述。
1.安装淘宝镜像NPM
由于npm的服务器在国外,所有国内用于在安装Vue.js时使用npm命令会比较慢,在此推荐使用国内的淘宝镜像NPM,之后我们便可以使用cnpm代替npm极大地加快安装速度。淘宝镜像地址:(https://npm.taobao.org/) 直接在命令行中执行如下命令即可安装淘宝镜像NPM:
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安装Vue.js “脚手架”
Vue.js “脚手架”类似于做房子时搭的框架,所以得首先安装它。在命令行中执行以下命令:npm install --global vue-cli(或者使用cnpm安装:cnpm install --global vue-cli)在此推荐使用cnpm安装,使用npm安装太慢了。 - 创建一个基于 webpack 模板的新项目
在命令行下切换到你的workspace,然后新建一个基于webpack模板的项目,执行以下命令:
vue init webpack my-project(项目名称),之后它会提示你输入项目的一些消息,依次是项目名称,描述,作者名称等。相信大家这个应该问题不大。
4.安装依赖,走你
使用cd命令切换到workspace中后,使用cnpm install命令安装项目所需要的包依赖,执行如下命令:npm install。
5.执行.Vue文件
因为在package.json文件中的dev属性中就指明了.Vue文件的路径,所有执行命令:npm run dev就可以执行.Vue文件的Vue程序。
“工欲善其事,必先利其器”,让我们开始一步一步走进Vue.js吧!
关于0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!和vue.js源码的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Apple Mac cocoa入门级教程- HelloWorld!、AutoVue教程:如何在64位Linux上安装AutoVue、Hello Vue: Vue快速入门教程、Hello,Vue.js -----新手如何安装Vue.js开发环境等相关知识的信息别忘了在本站进行查找喔。
本文标签: