又到了review的时候,话不多说,这次放出,最初的学习笔记。
Vue
我将Vue看成了一门新得编程语言来学,基础的语法知识我认为就以下这些重点。
一、数据绑定语法
1、数据绑定最基础的形式是文本插值,使用 {{}} 语法(双大括号),三个大括号标签可以输出真的HTML字符串。双大括号标签也可以用在 HTML 特性 (Attributes) 内,


也可以实现单次插值绑定,{{ * msg }}。
js
var data={msg:‘Hello Vue.js!’};
new Vue({
el: ‘#demo’,
data: data
})
data.msg=“Hello World!”;
html

This will never change: {{ msg }}
This will never change: {{* msg }}

This will never change: Hello World! This will never change: Hello Vue.js! var data={msg:'Hello'}; 2、过滤器,以管道符|表示,可以串联多个滤波器 内置的过滤器。其实只是一个JavaScript函数。 {{msg | lowercase | capitalize}}串联起来没弄通 带有v-的指令,计算属性computed var vm = new Vue({ el: '#example', data: { a: 1 }, computed: { // 一个计算属性的 getter b: function () { // `this` 指向 vm 实例 return this.a + 1 } } })

a={{ a }}, b={{ b }}

a=1,b=2

二、Class与Style绑定
class对象,v-bind:class一个对象,以动态地切换class。v-bind:calss指令可以与普通的class特性共存。可以将数组传给它,用来应用一个class列表。
v-bind:style对象语法,它是一个JavaScript对象,也可绑定数组

Style 对象语法

var vm = new Vue({ el: 'div', data: { activeColor: 'red', fontSize: 30 } })

三、渲染指令
渲染指令包括,v-if、v-show、v-else、v-for、template v-if、template v-for…用法同平常的,在其后加条件什么的。加入template元素后,可以切换多个元素,这里所说的多个元素,就是不局限于单条指令。

Title

Paragraph 1

Paragraph 2

Yes

另外,v-show指令,跟v-if存在区别的,详见博客http://blog.csdn.net/qq_24122593/article/details/52764224

四、表单控件绑定 在input标签里实现
可以在表单的input元素上使用v-model来创建双向数据绑定。会根据input元素类型自动选取正确的绑定模式。placeholder为默认显示提示。
check-box可以实现多个勾选逻辑值,v-model绑定验证,绑定值的时候用v-bind。radio。
重要的是select,
例如动态选项,加入v-for渲染,代码如下

{{ option.text }} Selected: {{ selected }}

new Vue({
el: ‘div’,
data: {
selected: ‘A’,
options: [
{ text: ‘One’, value: ‘A’ },
{ text: ‘Two’, value: ‘B’ },
{ text: ‘Three’, value: ‘C’ }
]
}
})
另外要保持时间的同步,除了上面使用双向绑定之外,也可以使用参数特性,保持同步。如下,参数特性针对v-model
lazy  在默认情况下,v-model 在input 事件中同步输入框值与数据,可以添加一个特性lazy,从而改到在 change 事件中同步
number 自动将用户的输入保持为数字
debounce设置最小的延时,在每次敲击之后延时同步输入框的值域数据。如果每次更新都要进行高耗操作,它较为有用,不会延迟input事件:它延迟写入底层数据。

五、自定义
自定义指令,可以完成将数据的变化映射到DOM的行为。Vue.directive(id,definition)传入指令和定义对象注册一个全局自定义对象。定义对象需要提供一下钩子函数。如下
bind: 仅调用一次,当指令第一次绑定元素的时候。
update: 第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值;以后每当绑定的值发生变化就会被调用,获得新值与旧值两个参数。
unbind:仅调用一次,当指令解绑元素的时候。

Vue.directive(‘my-directive’, {
bind: function () {
console.log(‘my-directive’)
},
update: function (value) {
this.el.innerHTML ='value - '+ value
}
})
var demo = new Vue({
el: ‘#demo’,
data: {
someValue: ‘hello!’
}
})
 所有的钩子函数将被复制到实际的指令对象中,钩子内 this 指向这个指令对象。如果指令需要多个值,可以传入一个JavaScript对象字面量。指令可以使用任意合法的JavaScript表达式。

六、处理器之类的
1、v-on 指令监听DOM事件,例子如下

Greet

var vm = new Vue({ el: '#example', data: { name: 'Vue.js' }, // 在 'methods' 对象中定义方法 methods: { greet: function (event) { // 方法内 'this'指向 vm alert('Hello ' + this.name + '!') // `event` 是原生 DOM 事件 alert(event.target.tagName) } } }) 2、内联语句处理器,除了绑定一个方法,也可以内联JavaScript语句。

Say Hi Say What

3、事件修饰符event.preventDefault() 或event.stopPropagation()、

七、组件,组件实例的作用域是孤立的。
1、Vue.extend()创建一个组件构造器,
// 定义
var MyComponent = Vue.extend({
template: ‘

A custom component!


})
// 注册
Vue.component(‘my-component’, MyComponent)
// 创建根实例
new Vue({
el: ‘#example’
}) 2、props传递数据 prop是组件数据的一个字段,期望从父组件传下来。子组件需要显式地用props选项声明props。 创建名为child的组件 Vue.component('child',{ //声明props props:['type'], template:' {{ type }}' }) new Vue({ el:'#example' }) 应用它 3、动态props 使用v-bind,父组件的数据变化,也会传递给子组件。 默认是单向绑定:

路由的应用,还不是很熟悉,希望多联系例子。
例如一些可以实现的指令,v-cloak,这个指令保持在元素上直到关联实例结束编译。和CSS规则如[v-cloak]{display:none}一起用时,这个指令可以隐藏未编译的Mustache标签直到实例准备完毕。
ES6
一、Babel,ES6转码器
1、Babel的配置文件是.babelrc,存放在项目的根目录下。
{
“presets”: [],
“plugins”: []
}
presets字段设定转码规则,官方提供以下规则集,根据需要安装:

ES2015转码规则

$ npm install --save-dev babel-preset-es2015

react转码规则

$ npm install --save-dev babel-preset-react

ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个

$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3
2、将规则加入.baeblrc
{
“presets”: [
“es2015”,
“react”,
“stage-2”
],
“plugins”: []
}
3、在线转换
Babel提供一个REPL在线编译器,可以在线将ES6代码转为ES5代码。转换后的代码,可以直接作为ES5代码插入网页运行。
二、新特性
classes - 各种 ‘类’,再也无需用 CoffeeScript 的语法糖写类了
generators - 未来的.js 代码中将有无数生成器,不学一点就看不懂 JS 代码了哦
collections - 集合、映射、弱集合、弱映射
arrow functions - 箭向函数
block scoping - 使用 let 、const 作用域,块辖域
template strings - 模板字串
promises - 用标准化了的方法进行延迟和异步计算
symbols - 唯一的、不可修改的数据 新的原始数据类型Symbol,表示独一无二的ID。
1、=>是function的简写形式,支持expression和statement两种形式,拥有词法作用域的this值
函数体内的this对象,绑定定义时所在的对象,而不是使用时所在的对象。this对象的指向是可变的,但是在箭头函数中,它是固定的。
不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
不可以使用arguments对象,该对象在函数体内不存在。
var evens = [1,2,3,4,5];
var fives = [];
// 表达式体
var odds = evens.map(v => v + 1);
var nums = evens.map((v, i) => v + i);
var pairs = evens.map(v => ({even: v, odd: v + 1}));
// 语句体
nums.forEach(v => {
if (v % 5 === 0)
fives.push(v);
});
document.write(fives);
// 具有词法作用域的 this
var bob = {
_name: “Bob”,
_friends: [“Amy”, “Bob”, “Cinne”, “Dylan”, “Ellen”],
printFriends() {
this._friends.forEach(f =>
document.write(this._name + " knows " + f));
}
}
bob.printFriends();
//5Bob knows AmyBob knows BobBob knows CinneBob knows DylanBob knows Ellen
2、引入了类class。
3、在ES6中,模块将作为重要的组成部分被添加进来。模块的功能主要由 export 和 import组成.每一个模块都有自己单独的作用域,模块之间的相互调用关系是通过 export 来规定模块对外暴露的接口,通过import来引用其它模块提供的接口。同时还为模块创造了命名空间,防止函数的命名冲突。
4、简单的字符串插值(string interpolation)
5、严格模式 “use strict”
6、let 允许把变量的作用域限制在块级域中。与 var 不同处是:var 申明变量要么是全局的,要么是函数级的,而无法是块级的。
var a = 5;
var b = 10;
if (a === 5) {
let a = 4; // The scope is inside the if-block
var b = 1; // The scope is inside the function
console.log(a); // 4
console.log(b); // 1
}
console.log(a); // 5
console.log(b); //1
ES6里增加了一个let,可以在{}, if, for里声明。用法同var,但作用域限定在块级,let声明的变量不存在变量提升。
‘use strict’;
function f1() {
var a = 1;
let n = 2;
if (true) {
var a = 20;
let n = 10;
}
console.log(n); // 2
console.log(a); // 20
}
f1();
7、const
可以联想C++,如果我们在上面声明常量num,再声明var num,这时会报错,num已经声明。
声明的是常量,一旦声明,值将是不可变的。
也具有块级作用域
不能变量提升(必须先声明后使用)
不可重复声明
指令指向变量所在的地址,所以对该变量进行属性设置是可行的(未改变变量地址),如果想完全不可变化(包括属性),那么可以使用冻结。
8、是否包含字符新方法
除了indexOf,还有三种新方法
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
这三个方法都支持第二个参数,表示开始搜索的位置。
9、repeat()原字符串重复
repeat()返回一个新字符串,表示将原字符串重复n次。参数为数字,确定次数。
10、模板字符串
模板字符中,支持字符串插值:
let first = ‘Jack’;
let last = ‘今天晴天’;
document.write(Hello ${first} ${last}!);
// Hello Jack 今天晴天!
模板字符串可以包含多行:
let multiLine = This is a string with multiple lines;
document.write(multiLine);
标签模板
模板字符串前面有一个标识名tag,示例如下
var a = 5;
var b = 10;

function tag(s, v1, v2) {
document.write(s[0]);
document.write(s[1]);
document.write(v1);
document.write(v2);

return “OK”;
}

tagHello ${ a + b } world ${ a * b};
// "Hello "
// " world "
// 15
// 50
// “OK”
11、若使用String.raw 作为模板字符串的前缀,则模板字符串可以是原始(raw)的。反斜线也不再是特殊字符,\n 也不会被解释成换行符:
let raw = String.rawNot a newline: \n;
document.write(raw === ‘Not a newline: \n’);
// true
12、新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个特殊值。Number.isInteger()用来判断一个值是否为整数。需要注意的是,在JavaScript内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值。
13、Math对象
Math.trunc():去除一个数的小数部分,返回整数部分。对于空值和无法截取整数的值,返回NaN。
Math.sign():判断一个数到底是正数、负数、还是零。返回五种值:参数为正数,返回+1;参数为负数,返回-1;参数为0,返回0;参数为-0,返回-0;其他值,返回NaN。
Math.cbrt:计算一个数的立方根。
Math.fround:返回一个数的单精度浮点数形式。
Math.hypot:返回所有参数的平方和的平方根。如果参数不是数值,Math.hypot方法会将其转为数值。只要有一个参数无法转为数值,就会返回NaN。
另外有三角函数、对数函数。
14、数组
Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。
Array.from()还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理。
Array.from()的一个应用是,将字符串转为数组,然后返回字符串的长度。这样可以避免JavaScript将大于\uFFFF的Unicode字符,算作两个字符的bug。
Array.of方法用于将一组值,转换为数组。只有当参数个数不少于2个,Array()才会返回由参数组成的新数组。
数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。数组实例的findIndex方法,用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
fill()使用给定值,填充一个数组。fill方法用于空数组的初始化非常方便。数组中已有的元素,会被全部抹去。fill()还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
let arr = [‘a’, ‘b’, ‘c’].fill(7)
document.write(arr); // [7, 7, 7]

let newArr = new Array(3).fill(7)
document.write(newArr); // [7, 7, 7]

let newArr = [‘a’, ‘b’, ‘c’].fill(7, 1, 2)
document.write(newArr); [‘a’,7,‘c’]
for…of循环,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
for (let index of [‘a’, ‘b’].keys()) {
document.write(index);
}
// 0
// 1

for (let elem of [‘a’, ‘b’].values()) {
document.write(elem);
}
// ‘a’
// ‘b’

for (let [index, elem] of [‘a’, ‘b’].entries()) {
document.write(index, elem);
}
// 0 “a”
// 1 “b”
三、函数
1、允许直接写入变量和函数,作为对象的属性和方法。
var Person = {
name: ‘张三’,
birth:‘1990-01-01’,
// 等同于hello: function ()…
hello() { document.write(‘我的名字是’, this.name); }
};
Person.hello();//我的名字是张三
2、属性名表达式
定义对象的属性,有两种方法:
let obj = {};
// 方法一 用标识符作为属性名
obj.foo = true;
// 方法二 用表达式作为属性名
obj[‘a’+‘bc’] = 123;
document.write(obj);
ES6允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内。
let propKey = ‘foo’;
let obj = {
[propKey]:true,
[‘a’+‘bc’]:123
};
表达式还可以用于定义方法名。
let obj={
‘h’+‘ello’{
return ‘hi’;
}
};
document.write(obj.hello());//hi
3、Object.is()用来比较两个值是否严格相等。它与严格比较运算符(=)的行为基本一致,不同之处只有两个:一是+0不等于-0,二是NaN等于自身。3与3.0相等,这样效果与=相同
4、源对象的所有可枚举属性,复制到目标对象
Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出TypeError错误。如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
var target = { a: 1 }; 字符串注意加引号,否则出不来

var source1 = { b: 2 };
var source2 = { c: 3 };Object.assign(target, source1, source2);
document.write(JSON.stringify(target)); //{"a":1,"b":2,"c":3}

5、Symbol新的原始数据类型
Symbol函数前不能使用new命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象。
6、默认参数
function sayHello(name){
//传统的指定默认参数的方式
var name = name||‘hubwiz’;
document.write('Hello '+name);
}

//运用ES6的默认参数
function sayHello2(name=‘hubwiz’){
document.write(Hello ${name});
}
sayHello(); //输出:Hello hubwiz
sayHello(‘看我’); //输出:Hello 看我
sayHello2(); //输出:Hello hubwiz
sayHello2(‘看我’); //输出:Hello 看我
7、rest参数
rest参数(形式为“…变量名”)可以称为不定参数,用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
function add(…value){
let sum=0;
for(var val of values){
sum+=val;
}
return sum;
}
add(1,2,3);//6
不定参数的格式是三个句点后跟代表所有不定参数的变量名。比如以上示例中,…values代表了所有传入add函数的参数。
8、函数绑定
函数绑定运算符是并排的两个双引号(::),双引号左边是一个对象,右边是一个函数。该运算符会自动将左边的对象,作为上下文环境(即this对象),绑定到右边的函数上面。
let log = ::console.log;
// 等同于
var log = console.log.bind(console);

foo::bar;
// 等同于
bar.call(foo);

foo::bar(…arguments);
i// 等同于
bar.apply(foo, arguments);
bob.printFriends();
9、尾调用
函数的最后一步调用另外一个函数,function f(x){return g(x);}
一下三种情况,都不属于尾调用,
// 情况一
function f(x){
let y = g(x);
return y;
}

// 情况二
function f(x){
return g(x) + 1;
}

// 情况三
function f(x){
g(x);
}等同于function f(x){
g(x);
return undefined;
}
如果函数g不是尾调用,函数f就需要保存内部变量m和n的值、g的调用位置等信息。但由于调用g之后,函数f就结束了,所以执行到最后一步,完全可以删除 f(x) 的调用帧,只保留 g(3) 的调用帧。
function f() {
let m = 1;
let n = 2;
return g(m + n);
}
f();

// 等同于
function f() {
return g(3);
}
f();

// 等同于
g(3);
10、数据结构set()
var s = new Set();
[2,3,5,4,5,2,2].map(x => s.add(x))
for (i of s) {document.write(i)}
// 2 3 5 4
Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。
操作方法 add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
遍历方法 keys():返回一个键名的遍历器
values():返回一个键值的遍历器
entries():返回一个键值对的遍历器
forEach():使用回调函数遍历每个成员
WeakSet和Set一样都不存储重复的元素,但有一些不同点 。
WeakSet的成员只能是对象,而不能是其他类型的值。三种方法WeakSet.prototype.add(value):向WeakSet实例添加一个新成员。
WeakSet.prototype.delete(value):清除WeakSet实例的指定成员。
WeakSet.prototype.has(value):返回一个布尔值,表示某个值是否在
Webpack
一、Webpack的配置文件
var webpack = require(‘webpack’);
var HtmlWebbpackPlugin = reqiure(‘html-webpack-plugin’);
var ExtractTextPlugin = require(‘extract-text-webpack-plugin’);
module.exports={
entry:_dirname+"/app/main.js",
output:{
path:_dirname + “/build”,
filename:"[name]-[hash].js"
},

module:{
loaders:[
{
test:/.jsonKaTeX parse error: Expected 'EOF', got '}' at position 26: …ader:"json" }̲, { tes…/,
exclude:/node_modules/,
loader:‘babel’
},
{
test:/.css$/,
loader:ExtractTextPlugin.extract(‘style’,‘css?modules!postcss’)
}
]
},
postcss:[
require(‘autoprefixer’)
],

plugins:[new HtmlWebpackPlugin({template:_dirname + "/app/index.tmpl.html"}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin(),
new ExtractTextPlugin("[name]-[hash].css")
]

}
二、为什么要使用WebPack
网页。。。。。功能丰富的应用,复杂的js代码、一大堆依赖包
webpack可以看做是模块打包机,能够做的是:分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。
把项目当做一个整体,通过一个给定的主文件(如:index.js),webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的js文件。

三、安装
1、webpack用npm安装,在终端中转入文件夹下:执行命令,//全局安装 npm install -g webpack
//安装到你的项目目录 npm install --save-dev webpack
2、在文件夹中创建一个package.json文件,一个标准的npm说明文件,在终端中使用npm init命令可以自动创建package.json文件
3、安装webpack作为依赖包
//安装webpack
npm install --save-dev webpack
4、回到文件夹,在里面创建两个文件夹,app文件夹和public文件夹,app文件夹用来存放原始数据和我们将写的js模块,public文件夹用来存放准备给浏览器读取的数据(包括使用webpack生成的打包后的js文件以及一个index.html文件)。在这里还需要创建三个文件,index.html文件放在public文件夹中,两个js文件(Greeter.js和main.js)放在app文件夹中,项目结构图如下:

四、部分文件含有的代码
1、index.html文件只有最基础的html代码,它唯一的目的就是加载打包后的js文件(bundle.js)

Webpack Sample Project 2、Greeter.js只包括一个用来返回包含问候信息的html元素的函数 //main.js var greeter = require('./Greeter.js'); document.getElementById('root').appendChild(greeter()); 3、main.js用来把Greeter模块返回的节点插入页面 //Greeter.js module.exports=function(){ var greet=document.createElement('div'); greet.textContent = "Hi there and greetings!"; return greet; }; 五、正式使用Webpack Webpack可以在终端中使用,其最基础的命令是 webpack {entry file/入口文件} {destination for bundled file/存放bundle.js的地方} 只需要制定一个入口文件,webpack将自动识别项目所依赖的其它文件,不过需要注意的是如果你的webpack没有进行全局安装,那么当你在终端中使用此命令时,需要额外指定其在node_modules中的地址,继续上面的例子,在终端中输入如下命令 //webpack非全局安装的情况 node_modules/.bin/webpack app/main.js public/bundle.js 已经成功的使用Webpack打包了一个文件。 六、另外一种配置使用方法 通过配置文件来使用Webpack,使用简单的npm start命令来代替这些繁琐的命令。在package.json中对npm的脚本部分进行相关设置即可,代码如下: { "name":"webpack-sample-project", "version":"1.0.0", "description":"Sample webpack project", "script":{ "start":"webpack"//配置的地方就是这里,相当于把npm的start命令指向webpack命令 }, “author":"zhang", "license":"ISC", "devDependencies":{ "webpack":"^1.12.9" } } 七、一切皆模块 把所有的文件都可以当做模块处理,只有通过合适的loaders,它们都可以被当做模块被处理。 webpack提供两个工具处理样式表,css-loader和style-loader,css-loader使你能够使用类似@import 和 url(...)的方法实现 require()的功能,style-loader将所有的计算后的样式加入页面中,二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。 css预处理器,使用相关loaders进行配置就可以使用了,以下是常用的CSS处理loaders Less Loader Sass Loader Stylus Loader loaders的配置选项包括以下几个方面: test:一个匹配loaders所处理的文件的拓展名的正则表达式(必须) loader:loader的名称(必须) include/exclude:手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选); query:为loaders提供额外的设置选项(可选) 配置babel: loader: 'babel',//在webpack的module部分的loaders里进行配置即可 Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,不过webpack把它们整合在一起使用,但是对于每一个你需要的功能或拓展,你都需要安装单独的包(用得最多的是解析Es6的babel-preset-es2015包和解析JSX的babel-preset-react包)。 插件:Plugins 要使用某个插件,我们需要通过npm安装它,然后要做的就是在webpack配置中的plugins关键字部分添加该插件的一个实例。 plugins: [ new webpack.BannerPlugin("Copyright Flying Unicorns inc.")//在这个数组中new一个就可以了 ],

初次接触vue,我是怎么学习的相关推荐

  1. (Python入门)学习笔记一,初次接触尝试使用Python——环境搭建与配置

    (Python入门)学习笔记一,初次接触尝试使用Python 早就耳闻Python大名,搞大数据.做人工智能.整机器学习,就得了解Python.之前一直没有去了解,现在由于之前一个项目涉及到一点Pyt ...

  2. 学习记录 - 初次接触Autodesk Forge 需要知道的几个重要链接

    原文链接: 初次接触Autodesk Forge 需要知道的几个重要链接 前言: 原本是将这些链接收藏浏览器里,也在相关文档中有所记录,但出门之后要找这些链接很不方便,所以来篇博客记录喽 官网 htt ...

  3. SAP FIORI专题之一:初次接触fiori,用sap hana studio开发发布UI5程序

    初次接触fiori 1 准备环境 2 一个简单的CURD怎么搞 2.1 后端建service 2.1.1 SEGW进入后端主界面 2.2.2 建个表 2.2.3 引用结构创建实体 2.2.4 发布生成 ...

  4. 汇编语言的准备知识--给初次接触汇编者 (1-4) 转载

    汇编语言的准备知识--给初次接触汇编者 1 在接触到游戏修改后发现需要很多的汇编知识,于是找汇编基础知识恶补,到网上搜索到一篇不错的文章,给各位想我一样的初学者一起学习! 教程: 汇编语言的准备知识- ...

  5. 汇编语言的准备知识--给初次接触汇编者 之三

    "汇编语言"作为一门语言,对应于高级语言的编译器,我们需要一个"汇编器"来把汇编语言原文件汇编成机器可执行的代码.高级的汇编器如MASM, TASM等等为我们写 ...

  6. vue源码学习--vue源码学习入门

    本文为开始学习vue源码的思路整理.在拿到vue项目源码的之后看到那些项目中的文件夹,会很困惑,不知道每个文件夹内的世界,怎么变换,怎样的魔力,最后产生了vue框架.学习源码也无从学起.我解决了这些困 ...

  7. 从0开始接触html--第一天学习内容总结

    第一天 总结: h1-h6 p 段落 hr br 有序 ol li 无序 ul li 定义列表 dl dt dd 块级元素:独占一行,h1-h6 p hr div 行内元素:共占一行, em和i st ...

  8. 【转载】大学四年我是如何学习程序设计的

    2019独角兽企业重金招聘Python工程师标准>>> [推荐:Android开发-android开发-安卓开发-android开发论坛 http://www.eoeandroid. ...

  9. 初次接触Autodesk Forge 需要知道的几个重要链接

    初次接触Autodesk Forge 需要知道的几个重要链接 前言: 原本是将这些链接收藏浏览器里,也在相关文档中有所记录,但出门之后要找这些链接很不方便,所以来篇博客记录喽 官网 https://d ...

最新文章

  1. 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
  2. 使用StarUML创建类图
  3. BZOJ - 3578: GTY的人类基因组计划2
  4. 怎么才能学好ajax,ajax - 如何学好java - BlogJava
  5. 避免css中文字体在浏览器中解析成乱码
  6. PL/SQL Developer使用技巧总结
  7. python如何运行py程序_如何用Python汇款:Web3.py教程
  8. 手桌面上没有计算机,手把手教你电脑桌面图标都不见了怎么办
  9. 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...
  10. java如果把字符串转成对象_为什么Java中的字符串对象是不可变的,有什么好处?...
  11. 大前端页面布局插件收藏
  12. javascript学习资料汇集
  13. FormsAuthentication使用指南
  14. Docker从理论到实践(一)------基础知识必备
  15. ArcGIS for Android Runtime100 基本操作(四)——GPS定位
  16. Cow Roller Coaster
  17. 易辅客栈-编写手游模拟器辅助脚本-征途
  18. 《kiss the rain》与追求完美的矛盾个体
  19. node项目部署到云服务器
  20. 在docker容器中创建用户组和用户,并且多用户共用一个anaconda环境

热门文章

  1. 618前夕,淘宝天猫大变革,探索电商天花板之上的价值
  2. 20180901卖菜
  3. 美国贫困线是怎么算的
  4. 完美解决 ListView偶尔爆出的异常:java.lang.IllegalStateException
  5. 为什么delegate属性使用assigne而不是retain?
  6. 规划数据中心降低成本,需要了解的几个小技巧
  7. 论文阅读和分析: “How Attentive are Graph Attention Networks?”
  8. python sql语句异常捕获_python异常处理
  9. java火焰_现代化的Java(十三)——火焰图
  10. Java源码分享——单机版五子棋