当前位置: 首页 > news >正文

自己做优惠劵网站赚钱吗中低端网站建设客户网

自己做优惠劵网站赚钱吗,中低端网站建设客户网,单页面网站开发,小学校园网站怎么建设1、React简介 1.1、React概述 React 是用于构建用户界面的 javascript 库#xff0c;具有声明式、组件化等特点。 1.2、MVC和MVVM模式 MVC#xff08;Model-View-Controller#xff0c;模型-视图-控制器#xff09;#xff0c;Model指模型数据#xff0c;View是显示的…1、React简介 1.1、React概述 React 是用于构建用户界面的 javascript 库具有声明式、组件化等特点。 1.2、MVC和MVVM模式 MVCModel-View-Controller模型-视图-控制器Model指模型数据View是显示的界面Controller是控制层控制层用于接收到用户的操作然后进行一系列的处理后发送给Model接收到Model的响应后再交给View视图层。 MVVMModel-View-ViewModel模型-视图-视图模型Model指模型数据View是指浏览器渲染的网页ViewMode是Model和View的桥梁称为视图模型由ViewModel完成数据的绑定。 在Vue中JS对象就是ModelHTML标签就是ViewVue实例就是ViewModel。 2、React环境搭建 2.1、使用webpack搭建React开发环境 参考博客https://blog.csdn.net/p445098355/article/details/104517094 2.2、使用create-react-app脚手架 安装脚手架 cnpm i -g create-react-app创建项目 create-react-app 项目名称3、JSX语法 jsx 全程是 javascript XML 是一个 JavaScript 的语法扩展。jsx 要按照 xml 的编写规范即 最外层只能有一个根标记每个标记都必须要有闭合标签 在 jsx 中可以使用 {...} 来编写 javascript 表达式。 4、React组件 4.1、函数组件 使用构造函数声明的组件被称为函数组件因其内部没有 state 属性所以又被称为无状态组件代码如下 import React from react; import ReactDOM from react-dom;const App () {return (div函数组件/div) }ReactDOM.render(App /,document.getElementById(root));可以通过 props 属性获取到组件标签上定义的属性值例如 import React from react; import ReactDOM from react-dom;const App (props) {return (div函数组件props值 {props.name}/div) }ReactDOM.render(App nameTom /,document.getElementById(root));4.2、类组件 使用 class 关键字创建的组件称为类组件因其内部可以有 state 属性又被称为有状态组件代码如下 import React from react; import ReactDOM from react-dom;class App extends React.Component {render() {return (div类组件/div)} }ReactDOM.render(App nameTom /,document.getElementById(root));在使用类组件的标签时标签上定义的属性都会通过类组件的构造函数传递到组件内部然后在组件内容使用 this.props 获取到外界的传值代码如下 import React from react; import ReactDOM from react-dom;class App extends React.Component {//构造函数constructor(props){super(props)console.log(props)}render() {return (div类组件props值 {this.props.name}/div)} }ReactDOM.render(App nameTom /,document.getElementById(root));每个类组件都有自己独享的内部状态即 state 属性。如果要操作 state 必须要使用 setState() 函数该函数是一个异步函数对 state 修改后会再次调用 render() 函数重新渲染页面。 class App extends React.Component {//构造函数constructor(props){super(props)this.state {value: hello}}//按钮点击事件接收到视图层的指令操作数据模型最后在把操作结果返回给视图handleClick(str){this.setState({value: str})}render() {return (div{this.state.value}button onClick{this.handleClick.bind(this,world)}修改state/button/div)} }ReactDOM.render(App nameTom /,document.getElementById(root));4.3、函数组件和类组件的区别 在说明函数组件和类组件的区别时要看3个方面 组件内是否有 this 组件内是否有 state ;组件内是否有生命周期钩子 只要符合上面的3点就是一个有状态组件即类组件。 4.4、组件通信 父组件向子组件传值 import React from react; import ReactDOM from react-dom; // import App from ./App;class App extends React.Component {render(){return (div{/* 自定义组件可以在组件上自定义属性 */}Button text百度一下 subText点击提交数据 textColorred//div)} }//无状态组件只显示UI效果没有太多的业务逻辑 const Button (props) {return (button title{props.subText} style{{color: props.textColor}}{props.text}/button) }ReactDOM.render(App nameTom /,document.getElementById(root));子组件向父组件传值 import React from react; import ReactDOM from react-dom; // import App from ./App;class App extends React.Component {//自定义组件的点击事件text为默认参数即封装Button组件时传入的一个参数handleClick(text){console.log(自定义组件被点击了。。。。,text)}render(){return (div{/* 自定义组件可以在组件上自定义属性也可以自定义事件 */}Button text百度一下 subText点击提交数据 textColorred onClick{this.handleClick.bind(this)}//div)} }//无状态组件只显示UI效果没有太多的业务逻辑 const Button (props) {return (button title{props.subText} style{{color: props.textColor}} onClick{(){props.onClick(props.text)}}{props.text}/button) }ReactDOM.render(App nameTom /,document.getElementById(root));4.5、封装自定义组件 自定义按钮组件 import React, { Component } from reactexport default class Button extends Component {//HTML的button标签原生点击事件函数handleClick(){this.props.onClick()}render() {return (divbutton style{{color: this.props.fontColor}} onClick{this.handleClick.bind(this)}{this.props.text}/button/div)} }自定义输入框组件 import React, { Component } from reactexport default class Input extends Component {//input标签原生键盘事件的函数handlePress(e){if(e.charCode 13){this.props.onEnter(e.target.value)}}render() {return (divinput onKeyPress{this.handlePress.bind(this)}/input/div)} }在父组件中使用自定义组件 import React, { Component } from react import Button from ./Button import Input from ./Inputexport default class App extends Component {handleClick(){console.log(click....)}//Input组件上的回车事件handleEnter(val){console.log(enter...,val)}render() {return (divInput onEnter{this.handleEnter.bind(this)}/InputButton text提交 fontColorred onClick{this.handleClick.bind(this)}/Button/div)} }5、UI组件库 5.1、使用Element-React组件库 需要安装 # 安装element-react cnpm i element-react --save# 安装elementui的主题 cnpm install element-theme-default --save# 按钮react-hot-loader cnpm install react-hot-loadernext -DButton组件使用案例 import React, { Component } from react import {Button } from element-react import element-theme-defaultexport default class App extends Component {constructor(){super()this.state {isLoading: false,btnText: 点击下载}}handleLoading (){this.setState({btnText: 下载中,isLoading: true},(){//模拟下载过程setTimeout((){this.setState({btnText: 下载完成,isLoading: false})},2000)})}render() {return (divButton typeinfo loading{this.state.isLoading} onClick{this.handleLoading}{this.state.btnText}/ButtonButton上传i classNameel-icon-upload2/i/Button/div)} }Menu和Table组件的使用案例 import React, { Component } from react import {Button,Menu,Table } from element-react import element-theme-defaultexport default class App extends Component {constructor(){super()this.state {column: [{label: 姓名,prop: name},{label: 年龄,prop: age},{label: 电话,prop: phone},{label: 操作,render: (obj,e,index){ //渲染函数的默认参数为当前点击的数据对象return (React.FragmentButton typeinfo sizesmall修改/Button nbsp;nbsp;Button typedanger sizesmall删除/Button/React.Fragment)}}],data: [{name: 张三,age: 20,phone: 13099998888},{name: 李四,age: 21,phone: 13099998888},{name: 王五,age: 22,phone: 13099998888}]}}render() {return (divMenu modehorizontal themedark defaultActive1 style{{marginBottom: 20px}}Menu.Item index1首页/Menu.ItemMenu.SubMenu index2 title新闻Menu.Item index2-1国内新闻/Menu.ItemMenu.Item index2-2国际新闻/Menu.ItemMenu.Item index2-3社会新闻/Menu.Item/Menu.SubMenu/MenuTable style{{width: 100%}} columns{this.state.column} data{this.state.data}/Table/div)} } 5.2、Ant Design UI库 安装 cnpm i antd --save引入组件 # 按需引入 import { DatePicker } from antd;# 引入样式 import antd/dist/antd.css; // or antd/dist/antd.less6、路由 BrowserRouter BrowserRouter 使用 HTML5 提供的 history API (pushState, replaceState 和 popstate 事件) 来保持 UI 和 URL 的同步。一个应用程序中只需要有一个 BrowserRouter 即可。 在 index.js 中使用 import React from react; import ReactDOM from react-dom; import App from ./App; import {BrowserRouter} from react-router-domReactDOM.render(BrowserRouterApp //BrowserRouter,document.getElementById(root));HashRouter HashRouter 使用 URL 的 hash 部分即 window.location.hash来保持 UI 和 URL 的同步。与 BrowserRouter 用法类似但是 HashRouter 在页面中显示的路由地址里有 # 符号。 import React from react; import ReactDOM from react-dom; import App from ./App; import {HashRouter} from react-router-domReactDOM.render(HashRouterApp //HashRouter,document.getElementById(root));Link 为你的应用提供声明式的、可访问的导航链接。 import { Link } from react-router-dom;Link to/aboutAbout/Link配合 Route 使用。 Route Route 可能是 React Router 中最重要的组件它可以帮助你理解和学习如何更好的使用 React Router。它最基本的职责是在其 path 属性与某个 location 匹配时呈现一些 UI。 import { BrowserRouter as Router, Route } from react-router-dom;RouterdivRoute exact path/ component{Home} /Route path/news component{News} //div /RouterLink、Route配合使用案例 import React, { Component } from react import {Menu} from element-react import element-theme-default import {Link,Route,Switch} from react-router-domexport default class App extends Component {render() {return (divMenu modehorizontal themedark defaultActive1 style{{marginBottom: 20px}}Menu.Item index1首页/Menu.ItemMenu.SubMenu index2 title新闻Menu.Item index2-1Link to/guonei国内新闻/Link/Menu.ItemMenu.Item index2-2Link to/guoji国际新闻/Link/Menu.ItemMenu.Item index2-3Link to/shehui社会新闻/Link/Menu.Item/Menu.SubMenu/MenuSwitchRoute path/guonei component{GuoneiNews}/RouteRoute path/guoji component{GuojiNews}/RouteRoute path/shehui component{ShehuiNews}/Route/Switch/div)} }参考博客https://www.jianshu.com/p/97e4af32811a 7、Redux状态管理 Store 用于连接 action 和 reducer 重要对象一个redux应用程序中只能有一个 store 对象。 import { createStore } from redux import todoApp from ./reducers let store createStore(todoApp)Reducer Reducers 指定了应用状态的变化如何响应 actions 并发送到 store 的记住 actions 只是描述了有事情发生了这一事实并没有描述应用如何更新 state。 Action Action 是把数据从应用译者注这里之所以不叫 view 是因为这些数据有可能是服务器响应用户输入或其它非 view 的数据 传到 store 的有效载荷。它是 store 数据的唯一来源。一般来说你会通过 store.dispatch() 将 action 传到 store。 const action {type: ADD_TODO,text: Build my first Redux app }核心API 在使用redux时需要掌握的核心API store.getState() 用于获取最新的store对象store.subscrbe() 用于监听store中的数据变化store.dispatch() 用于向reducer派发action对象
http://www.huolong8.cn/news/64064/

相关文章:

  • 网站备案增加域名解析企业网站推广的方法有哪些
  • 律师在哪个网站做做网站1200
  • 网站推广有哪些手段wordpress后台加载很慢
  • 算命网站建设网络营销相关的资源网站
  • 黑龙江省建设造价协会网站南宁网站建设q479185700惠
  • 查建设标准网站闵行网站制作哪里有
  • 装潢网站模板wordpress 城市分类
  • 提供中山精品网站建设网页源代码怎么调出来
  • 品牌查询网站sae wordpress博客
  • 1元云购网站建设网站seo优化技能
  • 成都网站建设略奥网络电商怎么推广自己的产品
  • 山西城乡和住房建设厅网站首页游戏公司排行榜前十名
  • 网站滑动效果怎么做怎么样做公司网站
  • 网站建设学习课程大的互联网公司
  • 网站推广经验wordpress搭建电子商务
  • 建设网站青岛在后台怎么做网站内链
  • 做衣服招临工在什么网站找线上商城运营的主要工作
  • 哪个网站可以免费做国外网站怎么制作网站设计
  • 南宁设计网站属于网站的管理 更新 维护
  • 小企业做网站有没有用wordpress如何改成中文
  • 个体可以做企业网站吗毕业设计做网站好的想法
  • 郑州网站创建如何在网站上做qq群链接
  • 海兴县网站建设公司苏宁网站建设
  • 做网站汉狮网络福建大佳建设工程有限公司网站
  • 网站帮助文档怎么写免费网站域名使用
  • 东莞网站开发哪家强访问网站出来的是目录
  • 温州本地网站单县住房和城乡建设局网站
  • 大型网站开发工具网站素材
  • 开源asp学校系统网站html代码查看
  • 网站模板 素材网站点击后的loading是怎么做的