//es5
Object.defineProperty(window, "PI2", {writable: false, value: 3.1415926});
//es6
const PI=3.1415926
//es5
Object.defineProperty(window, "PI2", {writable: false, value: 3.1415926});
//es6
const PI=3.1415926
## step 1 :初始化空库
[root@vm_test backup]# mkdir devops
[root@vm_test backup]# cd devops/
[root@vm_test devops]# git init #初始化空库
## step 2 : 拉取remote的all objects信息
[root@vm_test devops]# git remote add -f origin http://laijingli@192.168.1.1:90/scm/beeper/yunxxx_ops.git #拉取remote的all objects信息
## step 3 : #3.1 开启sparse clone, #3.2 设置需要pull的目录 devlops
[root@vm_test devops]# git config core.sparsecheckout true #开启sparse clone
[root@vm_test devops]# echo "devops" >> .git/info/sparse-checkout #设置需要pull的目录,*表示所有,!表示匹配相反的
[root@vm_test devops]# more .git/info/sparse-checkout
## step 4 : # 将origin 端,由第三步(文件 .git/info/sparse-checkout)设置的 目录下的文件 pull 到本地
[root@vm_test devops]# git pull origin master
## OK 啦!
https://videobydss.oss-cn-beijing.aliyuncs.com/enreaderapk%20%282%29.apk
编辑器组件可灵活地为您的编辑器定义自定义键绑定,通过keyBindingFn prop, 这样允许你的编辑器组件匹配快捷键命令
默认快捷键绑定函数是getDefaultKeyBinding
因为draft对DOM渲染和行为保持严格控制,基础编辑命令必须被捕获,并且通过键绑定系统进行路由
getDefaultKeyBinding
将已知的OS级编辑器命令映射到DraftEditorCommand
字符串,然后这些字符串与组件处理程序中的行为相对应
例如,CTRL+Z(win)和Cmd+z(OSX)映射到‘undo’命令,该命令随后路由我们的处理程序以执行EditorState.undo()
你可以提供自己快捷键绑定函数,供给自定义命令字符串
推荐你的函数用getDefaultKeyBinding
作为替代方案,以便你的编辑器可以从默认命令中受益
用你的自定义命令字符串,你可以实现handleKeyCommand
prop 函数 ,命令字符串映射到你想要的行为,如果 handleKeyCommand
返回 ‘handled’
则该命令视为已处理,如果返回‘not-handled
’该命令将失败
今天开始学习vuejs
知识点1,vue修改数据
app.$data.content = 'bye world';
知识点2,绑定事件 v-on:click
#3,双向绑定v-model=”inputValue”
#4 , 组件的写法
Vue.component("TodoItem",{
template:"<li>Todo Item</li>"
})
#5,组件引用
<todo-item v-for="item in list"><todo-item>
#6, 组件数据引用,定义全局组件
<todo-item v-bind:content="item" v-for="item in list"><todo-item>
Vue.component("TodoItem",{
props:['content'],
template:"<li>{{content}}</li>"
})
#7,局部组件定义和注册
var TodoItem = {
props:['content'],
template:"<li>{{content}}</li>"
}
var app = new Vue({
el:'#root',
components:{
//组件的注册
TodoItem:TodoItem
},
data:{
inputValue:'',
list:[]
},
methods:{
}
})
#,子组件向父组件传值
<div id="root">
<input type="text" v-model="inputValue">
<button @click="add"></button>
<ul>
<todo-item v-bind:content="item" v-bind:index="index" v-for="(item, index) in list" @delete="handleDelete"></todo-item>
</ul>
</div>
var TodoItem = {
props:['content', 'index'],
template:"<li @click="handleDelete">{{content}}</li>",
methods:{
handleDelete:function(){
this.$emit("delete", this.index)
}
}
}
var app = new Vue({
el:'#root',
components:{
TodoItem:TodoItem
},
data:{
inputValue:'',
list:[]
},
methods:{
add: function(){
this.list.push(this.inputValue)
}
handleDelete: function(index){
this.list.splice(index, 1)
}
}
})
// package.json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --watch app.js --exec node \"app\""
},
小心地渲染HTML
<div dangerouslySetInnerHTML = {{ __html: checkMessages.details }} />
<div dangerouslySetInnerHTML={{ __html: '<div>123</div>' }} />
npm install react-router-dom
import { BrowserRouter, Route } from 'react-router-dom'
<BrowserRouter>
<div>
<Route path="/" exact render={()=>(<div>home</div>)} />
<Route path="/detail" exact render={()=><div>detail</div>} />
</div>
</BrowserRouter>
exact 表示精确匹配,render后面跟一个箭头函数,返回要显示的内容
1、在src目录下创建pages文件夹,在里面创建home和detail文件夹,分别存放对应的组件,例如home下创建组件,新建index.js
import React, { Component } from 'react';
class Home extends Component{
render(){
return <div>home~</div>;
}
}
export default Home;
2、引用pages下的组件
import Home from './pages/home';
import Detail from './pages/detail';
...
<BrowserRouter>
<div>
<Route path="/" exact component={ Home } />
<Route path="/detail" exact component={ Detail } />
</div>
</BrowserRouter>
...
$npm install -g create-react-app
$create-react-app 你的项目名
<?php
function random($num){
$str = 'abcdefghijklmnopqrstuvwxyz0123456789';
$code = '';
for ($i=0; $i < $num ; $i++) {
// 随机位置
$j = rand(0,strlen($str)-1);
// 拼接字符串
$code .= substr($str, $j, 1);
}
return $code;
}
echo random(32);