2018年7月

下载.jpg
诶友们应该知道前端时间我一直在学习React,download了很多教程,也买了一些套餐课程,但是最近我学习非常吃力
有人会问我卡在哪里了??我回答的是webpack的热加载这一块,对,你没听错,我卡在环境配置这里了,我的第一套
教程配置非常简单,无非就是cmd安装几个npm命令下环境非常easy,但是配置webpack遇到了bug,无奈求助无果只能
放弃。

--谈谈vue
一个同班同学一直想学,今天就入手了vue,就首先学习了一些基本的语法,总体来说,入门和react差不多,都是初级
但是一直感觉vue比较简单,但是还是好好学习下,不能一直这样任性了,好吧,趁着这个时间,我就来大家入门helloworld吧

--首先安装vue,直接去vue官网去下载js文件,直接引入即可
--我们用storm打开项目之后,引入vuejs文件后,重要的一步来了,在主干部分结束以后在写你的外链js或者内链js,否则会报错
因为有一个加载js顺序的原因,我们把js的入口文件定义为index.js

--我们定义了一个test容器,现在进入index.js
new Vue({

    el:'#test',
    data:function (){
       return{
           text:'say no!'
       }
    },
    components:{
        'my-header':emple
    }

})

--我们这边定义了一个根组件new 了这个一个vue的类,类中有很多参数,比如el:这个表达的就是渲染到哪个容器中
data是组件中的数据,比如这个数据名是text,那么在本函数或者htmltest容器中写{{text}}双括号就可以实现访问
数据名中的内容,components是包含组件,这里定义了一个组件名字为my-header,emple是定义了一个子组件--
/**
*这是一个组件

  • @type {{template: string, components: {"my-child": {template: string}}}}
    */

var emple={

    template: '<p><my-child></my-child>这是我的第一个组件{{words}}</p>',
    data:function(){
      return {
       words:'yes!'         
  }

},

    components:{
        'my-child':child
    }
};

--我们把组件附给了emple,在根组件就可以直接应用,在子组件中我们有一个template是模板,返回html或者数据都可以,里面的{{words}}
刚刚说了是本函数中的data数据,本函数中的words数据名就可以用这种双括号的方式可以访问到对应的'yes!',template模板中
同样也是一个组件,是组件的组件,这边我们进行了一个组件的嵌套;
--在本函数中的components中定义了一个组件(子子组件),定义了一个my-child的组件,他的值就是child,当然这个child也是一个组件,
/**
*

  • 这是一个子组件
    */

var child={

template:'<p>i am child</p>'

};
--这边我们的template也是一个html标签,为了让子组件能够套子子组件的内容,刚刚我们在子组件的组件方法compoents中定义了一个组件
并且把值child给了my-child,然后把组件给放到了子组件的模板中,然后在根组件中与html进行交互,在html中我们在test容器中
进行了组件的创建,直接在test容器中加载了组件,这样一个组件的嵌套就好了,组件的内容有子组件的模板内容和子子组件的模板
内容,他们嵌套的内容大概顺序就是:
--首先定义了一个根组件,并且创建了一个组件为a,a组件中的值是一个组件函数,a组件中的模板中定义了一个html标签,其中html标签中又2
包含了一个组件,这个组件在子组件已经定义并且赋值,所以子子组件的模板内容+子组件的模板内容一起根组件返回到html页面中进行组件和页面的
应用。

ok,就到这里了,不太懂的话,就私信我吧。
wechat:meng99huan

下载.jpg
最近老沈可是很久没有写java代码了,在完成一部分前端的工作,熟悉我的人都知道,前端比较差,最基本的东西还是懂得,但是没有认真去
学过html5和css3,一个学校的项目由于人事的原因从最初的2人变成只有我自己,一个完善的教师满意度打分系统,前端和后台分离,目前后台大部分
功能已实现,就只是前端的,所以就今天写了一个css3的anmition动画写的一个简单的div块旋转到中央的一个效果还是挺别致的。

粘贴一下代码,原div块的position 要给顶一个最终位置,比如说要把这个块的最终位置设置在中间

ready{

border-radius: 6px;
width: 444px;
height: 430px;
background:#fff;
position: fixed;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
margin: auto;
/*让块旋转*/
-webkit-animation: divrotate 1.3s; /*Safari and Chrome*/

}
最后一句代码就是兼容mac浏览器和谷歌浏览器的代码
divrotate是动画名称 1.3s是整个动画运行的时间
下面我们就开始定义动画
@keyframes divrotate {

0%{
    transform:rotate(90deg);
    -ms-transform:rotate(90deg);     /* IE 9 */
    -moz-transform:rotate(90deg);    /* Firefox */
    -o-transform:rotate(90deg);
    width:30px;
    height: 30px;

}
25%{
    transform:rotate(180deg);
    -ms-transform:rotate(180deg);     /* IE 9 */
    -moz-transform:rotate(180deg);    /* Firefox */
    -o-transform:rotate(180deg);
    /*让块往右走*/
    left:12%;
    width:100px;
    height: 100px;
}
50%{
    transform:rotate(270deg);
    -ms-transform:rotate(270deg);     /* IE 9 */
    -moz-transform:rotate(270deg);    /* Firefox */
    -o-transform:rotate(270deg);
    /*让块往右走*/
    left:24%;
    width: 180px;
    height: 180px;
}
75%{
    transform:rotate(300deg);
    -ms-transform:rotate(300deg);     /* IE 9 */
    -moz-transform:rotate(300deg);    /* Firefox */
    -o-transform:rotate(300deg);
    /*让块往右走*/
    left:48%;
    width: 280px;
    height: 280px;
}
100% {
    transform:rotate(360deg);
    -ms-transform:rotate(360deg);   /* IE 9 */
    -moz-transform:rotate(360deg);  /* Firefox */
    -o-transform:rotate(360deg);
    /*让块往右走*/
    left:34%;
    width: 444px;
    height: 430px;
}

}

定义动画带起始式是@keyframes divrotate
后面跟的是动画名称
然后每个百分比之间的样式就是,动画在经行的进度之内做出的操作,还是比较简单的
css虽然好写,但是要写出非常nice的效果,就非常需要一个很好的思路和创意

好了,这几天会持续发表一些学习ReactJS的心得。

今天又很开心学习了第四章节,收获蛮大的,希望写完文章后能对状态有着更好的掌握!
1.首先是组件的嵌套

React组件的创建是用creatClass函数
在这里我们举一个例子:
var Part_one=React.createClass({

        render:function () {
             return(
                 <div>
                 <h1>我爱敲代码</h1>
                    *<Part_Two/>*
                </div>
             );
         }
     });

然后呢,我们再定义一个组件名为 <Part_Two/>
var Part_Two=React.createClass({

         render:function () {
            return (
                 <h2>我也爱敲代码</h2>
            )
         }
    });

然后在其中一个组件中嵌套另外一个组件,就是这么简单!
测试通过后就成功显示了2行字,‘我爱敲代码和我也爱敲代码’
2.下面展示下今天比较重要的状态。
在React定义状态的时候是用
getInitialState:function(){

            return {
                clickCount:0,
            }
        }

要改变状态要调用setstate函数,在这里我做了一个小项目,点击一次按钮就加一!QQ截图20180712213911.png

ps:展示下源码
var Click=React.createClass({

        getInitialState:function(){
            return {
                clickCount:0,
            }
        },
        clickOver:function(){
            this.setState({
                clickCount:this.state.clickCount+1,
            })
        },
        render:function () {
            return (
                <div>
                    <p>点击下面的按钮</p>
                    <button onClick={this.clickOver}>点我</button>
                    <p>你一共点击了:{this.state.clickCount}</p>
                </div>
            )
        }
    });
    /*渲染到页面*/
    React.render(<Click/>,
        document.getElementById("window")
    )

解释:首先我们定义了一个状态事件,返回值是一个变量为0,然后又定义了一个事件用于每次+1,然后构建了一个div实现了简单的交互
button指向了每次+1的事件,下面的展示一共点击多少下的p标签则调用了状态事件,每当用户点击一次就调用方法让变量+1,然后p标签就
记录了一共多少次,最终渲染到window中,拥有一点点js基础的人能很直观的看懂。

写在最后:React 把组件看成是一个状态机。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。

下载.jpg
由于个人原因,在这个暑假想接触第一门JS框架,选择React框架,这个框架起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。

关于书写最基本的语法有几个注意的点
1.安装react尽量使用bower安装,并且要有git环境,安装成功后引入JS文件即可
2.可以不用命令行安装,也可以直接连接在线引用地址
在这里,我提供jQuery和react的引用库,国内访问速度较快的。

3.准备成功以后我们开始code了!
首先我们准备一个div容器

4.其次我们开始JS
react是采用组件化的方式的,这极大的方便了后续开发者的优化等等,也避免了同样的东西二次重写代码
var Box=React.createClass({

    render:function () {
        var style={
            height:'100px',
            color:'red'
        }
        return <p style={style}>hello world</p>
    }
});

ps:我们这边定义了一个Box变量,然后调用createClass方法定义一个组件,在组件的render函数中,我们定义了一个
样式,并且返回了一个p标签,这里需要注意的就是我们不要在JS代码前面写text/javascipt,而要写