1. 程式人生 > >社交系統ThinkSNS+安裝部署演示

社交系統ThinkSNS+安裝部署演示

執行 truct www. ret composer 層級 ins orm mit

  ThinkSNS(簡稱TS),一款全平臺綜合性社交軟件系統,10年來為國內外大中小企業和創業者提供社交化軟件研發及技術解決方案。目前有ThinkSNS V4、ThinkSNS+兩個並行系統。
  
  ThinkSNS一直不斷優化,持續更新,旨在為大家帶來更好的系統體驗,能夠更快更好地應用到商業化、企業化等多樣化的軟件項目中,加速你的開發進度,減少研發時間周期。
  
  ThinkSNS社交系統主要功能有:微博(朋友圈)、即時聊天、直播、論壇、資訊、CMS、活動、頻道、圈子、問答、打賞等主流社交功能應有盡有。
  
  ThinkSNS+版本發布之後,很多小夥伴們反饋安裝部署有些困難,那麽今天我們就通過錄制視頻的形式,給大家演示安裝部署的全過程,由於時間緊張沒有字幕,敬請諒解,後續我們有時間的時候會進行後期處理。

  
  好,那麽正式演示開始:
  
  社交系統ThinkSNS+安裝部署演示視頻
  
  視頻內容提要:
  
  一、 工具
  
  1. composer composer中文網 網頁鏈接
  
  2. github
  
  3. nodejs + yarn或者npm
  
  1. yarn官網 網頁鏈接
  
  2. nodejs官網 網頁鏈接
  
  二、演示內容
  
  1. thinksns+ 核心包安裝 網頁鏈接
  
  2. html5擴展安裝 網頁鏈接(原地址) -> 網頁鏈接(以後的新地址)
  
  3. 組織機構倉庫 網頁鏈接
  
  三、操作步驟
  
  1. 從github拉取thinksns+核心主幹代碼 網頁鏈接
  
  2. composer安裝thinksns+所需的依賴包 composer install;
  
  3. 創建數據庫;
  
  4.對核心進行配置 復制 .env.example 為 .env, 設置數據庫信息如數據庫賬號密碼、數據庫;
  
  5.執行php artisan key:generate;
  
  6.運行遷移 php artisan migrate; php artisan db:seed;
  
  7.composer依賴html5移動版擴展 composer require/zhiyicx/plus-component-web;
  
  8.進行編譯;
  
  9.安裝html5擴展 php artisan package:handle h5 install; php artisan package:handle h5 link;
  
  10.安裝動態擴展 composer require zhiyicx/ www.tianscpt.com plus-component-feed; php artisan package:handle feed resolve;
  
  11. 安裝im擴展 composer require zhiyicx/plus-component-im; php aritisan package:handle im install;
  
  上述是成功的部署整個過程,有不清楚的小夥伴們,可以多看幾次視頻,相信一定可以很快部署成功的。
  
  感謝各位對Ts團隊和產品的支持,部署開源系統請保留版權標誌,你們的支持和尊重是我們最大的動力。
  
  ThinkSNS+購買,可以聯系(www.baihuiyulep.cn)深度了解相關事項!
  
  ThinkSNS+開源代碼倉庫(僅含PC及H5,不含APP源碼):
  
  組件功能分析:
  
  1-每個input輸入框被觸發後開始做非空校驗並提示錯誤
  
  2-表單提交時做表單項校驗,全部校驗成功則提示登錄,否則提示校驗失敗
  
  3-表單項增加前置圖標
  
  組件封裝思路:
  
  1-需要一個高階函數hoc FormCreate,用來包裝用戶表單,增加數據管理能力;hoc需要擴展四個功能:getFieldDecorator, getFieldsError, getFieldError, isFieldTouched。獲取字段包裝器方法getFieldDecorator的返回值是個高階函數,接收一個Input組件作為參數,返回一個新的組件。這就是讓一個普通的表單項,變成了帶有擴展功能的表單項(例如:增加該項的校驗規則)
  
  2-FormItem組件,負責校驗及錯誤信息的展示,需要保存兩個屬性,校驗狀態和錯誤信息,當前校驗通過時錯誤信息為空
  
  3-Input組件,展示型組件,增加輸入框前置icon
  
  4-導出FormCreate裝飾後的MForm組件,MForm組件負責樣式布局以及提交控制
  
  組件封裝步驟:
  
  1-完成一個基礎的組件MForm,讓頁面先展示出來
  
  2-寫一個高階組件FormCreate對MForm進行擴充,使MForm組件擁有數據管理的能力。
  
  保存字段選項設置 this.options = {}; 這裏不需要保存為state,因為我們不希望字段選項變化而讓組件重新渲染
  
  保存各字段的值 this.state = {}
  
  定義方法 getFieldDecorator()(),第一個參數傳遞配置項,第二個參數傳入Input組件;第一個參數包括:當前校驗項、校驗規則 ‘username‘,{rules:[require:true,message:‘請輸入用戶名‘]}
  
  在FormCreate中,克隆一份Input組件,並且定義Input的onChange事件。首先這裏需要把已經存在的jsx克隆一份,並修改它的屬性,直接修改屬性是不允許的;這裏在更高級別定義onChange事件,控制元素的值,這樣當組件發生變化時,就不用進行組件之間的來回通信。數據變化交給容器型組件去做,低層級的組件只負責展示即可。
  
  3-增加提交校驗功能
  
  4-增加FormItem組件,在表單項觸發後做實時校驗並提示錯誤信息
  
  代碼:MForm.js
  
  以下每一步驟都可以獨立運行
  
  step1 - 搭建基礎代碼
  
  復制代碼
  
  1 import React, { Component } from ‘react‘
  
  2
  
  3 class MForm extends Component {
  
  4 render() {
  
  5 return (
  
  6 <div>
  
  7 用戶名:<input type=‘text‘ />
  
  8 密碼:<input type=www.mmingyLgw.com‘password‘ />
  
  9 <button>Log in</button>
  
  10 </div>
  
  11 )
  
  12 }
  
  13 }
  
  14
  
  15 export default MForm
  
  復制代碼
  
  step2 - 用高階組件FormCreate對最後導出的MForm組件進行能力擴充;通過表單項組件FormItem展示校驗錯誤信息
  
  復制代碼
  
  1 import React, { Component } from ‘react‘
  
  2
  
  3 // hoc: 包裝用戶表單,增加數據管理能力及校驗功能
  
  4 const FormCreate = Comp => {
  
  5 return class extends Component {
  
  6 constructor(props) {
  
  7 super(props)
  
  8 this.options = {} // 保存字段選項設置
  
  9 this.state = {} // 保存各字段的值
  
  10 }
  
  11
  
  12 // 處理表單項輸入事件
  
  13 handleChange = e => {
  
  14 const { name, value } = e.target
  
  15 this.setState(
  
  16 {
  
  17 [name]: value
  
  18 },
  
  19 () => {
  
  20 // TODO: 處理狀態變化後的校驗
  
  21 // 由於setState是異步的,所以這裏需要在回調函數中處理後續操作
  
  22 // 保證狀態已經完成改變
  
  23 }
  
  24 )
  
  25 };
  
  26
  
  27 getFieldDecorator = (field, option) => InputComp => {
  
  28 this.options[field] = option
  
  29 return (
  
  30 <div>
  
  31 {/* 把已經存在的jsx克隆一份,並修改它的屬性,直接修改屬性是不允許的。
  
  32 這裏在更高級別定義onChange事件,控制元素的值,這樣當組件發生變化時,
  
  33 就不用進行組件之間的來回通信 */}
  
  34 {React.cloneElement(InputComp, {
  
  35 name: field, // 控件name
  
  36 value: this.state[field] || ‘‘, // 控件值
  
  37 onChange: this.handleChange // change事件處理
  
  38 })}
  
  39 </div>
  
  40 )
  
  41 };
  
  42 render() {
  
  43 return (
  
  44 <Comp {...this.props} getFieldDecorator={this.getFieldDecorator} />
  
  45 )
  
  46 }
  
  47 }
  
  48 }
  
  49
  
  50 @FormCreate
  
  51 class MForm extends Component {
  
  52 render() {
  
  53 const { getFieldDecorator www.365soke.com} = this.props
  
  54
  
  55 return (
  
  56 <div>
  
  57 用戶名:{getFieldDecorator(‘username‘, {
  
  58 rules: [{ required: true, message: ‘請填寫用戶名‘ }]
  
  59 })(<input type=‘text‘ />)}
  
  60 密碼:{getFieldDecorator(‘password‘, {
  
  61 rules: [www.dasheng178.com{ required: true, message: ‘請填寫密碼‘ }]
  
  62 })(<input type=‘password‘ />)}
  
  63 <button>Log in</button>
  
  64 </div>
  
  65 )
  
  66 }
  
  67 }
  
  68
  
  69 export default MForm

社交系統ThinkSNS+安裝部署演示