鍍金池/ 問答/Java  HTML/ 傳統(tǒng)web項目不做前后端分離能否使用vue的組件化功能?

傳統(tǒng)web項目不做前后端分離能否使用vue的組件化功能?

如果您知道的話,能否直觀的回答我的問題?能的話怎么做,不能的話大概為什么不能?如果您想說一下,非常感謝,不想說,也謝謝

不想在一個html和一個.js文件中寫太多代碼,所以想把每個組建單獨出來,又不知道該怎么做

感覺項目還沒有大到需要做前后端分離

但是又想使用組件化功能;

該怎么使用啊, 傳統(tǒng)web項目不支持.vue文件吧,也不支持import和export吧,

那該怎么寫啊

vue是引入js文件的那種方式

回答
編輯回答
厭遇

你現(xiàn)在的情況和我之前比較類似, 兩三個文件承載所有的功能, 我的處理方式是這樣的:
1)前期使用requirejs做模塊化, 花一些時間, 把原來項目按模塊拆開(這一步是最難的, 因為一邊做項目, 一邊還要做短期看不到成效的事情, 所以需要你主推)

2)上一期搞完之后, 在一些不太重要頁面加你需要的框架,比如vue, 然后一部分一部分上, 別一起上, 風險太大.

總體來說是把事情做好, 然后把風險控到最低!

2017年12月20日 09:02
編輯回答
咕嚕嚕

你需要了解下這個 cmd amd 這兩種 規(guī)范 就應該知道怎么組織 vue的組件了

簡單說

假設 你有個組件A.js 里面的結構入下

{
    name: 'pdHeader',
    props: {
      title: {
        type: String,
        default: '加載中...'
      },
      isPreview: {
        type: Number,
        default: 0
      },
      share: {
        type: Object,
        default: null
      }
    },
    template: '  <div class="pd-header">' +
    '    <div class="pd-header-btn back" @click="goBack"></div>' +
    '    <div class="pd-header-title">{{title}}</div>' +
    '    <div class="pd-header-btn" @click="goShare" :class="{share:share}"></div>' +
    '  </div>',
    methods: {
      goBack: function () {

      },
      goShare: function () {
        
      }
    }
  }

你需要用上面提到的 加載規(guī)范去加載他 形成一個加載器能識別的模塊 就變成了下面這樣

 
  define('moduleId', function (require, exports, module) {
  var component;
  component = {
    name: 'pdHeader',
    props: {
      title: {
        type: String,
        default: '加載中...'
      },
      isPreview: {
        type: Number,
        default: 0
      },
      share: {
        type: Object,
        default: null
      }
    },
    template: '  <div class="pd-header">' +
    '    <div class="pd-header-btn back" @click="goBack"></div>' +
    '    <div class="pd-header-title">{{title}}</div>' +
    '    <div class="pd-header-btn" @click="goShare" :class="{share:share}"></div>' +
    '  </div>',
    methods: {
      goBack: function () {
       
      },
      goShare: function () {
       
      }
    }
  };
  module.exports = component;
});

然后你主頁面調用 就應該是類似下面的

//一個vue實例
define('moduleId2', function (require, exports, module) {
  var pdHeader = require('moduleId');
  var handle.vm=new Vue({
        el: '#app-rule',
        data: {
        
        },
        mounted: function () {
          this.postManInfo();
          
        },
        destroyed: function () {
        
        },
        components: {
          'pdHeader': pdHeader,//a.js 組件
        },
        methods: {
         
          postManInfo: function () {
          
            
          }
        }
      })
    module.exports = handle
  });

這種就是簡單的一個例子 ,前提是你要知道 我說前面說的 加載規(guī)范,然后這種做法 目前我遇到的 沒有用vue的路由 ,我們有自己的路由體系,這里就不展開說了。
這種做法 前期用 cmd 或者amd 規(guī)范去寫模塊 然后加載,

個人做法

用VUE 文件寫 ,然后用webapack 或者其他打包工具(rollup) 發(fā)布 library 形式的一個js插件(具體需要你去看對應的打包設置),剩下的就是引用一下完事,插件完全按照 vue文件的寫法去做,麻煩的問題就是開發(fā)過程中 調試,還有用不用babel的問題。

2017年6月19日 05:48
編輯回答
久不遇

使用vue并不一定非非要使用前后端分離 有時候我我們會將它運作雙向綁定。和異步渲染

2017年8月25日 10:13
編輯回答
熊出沒

前后端分離與項目大小無關啊,只是一種架構模式而已。我自己曾經寫過一個小工具,只有一個頁面,三個 Web API,也是采用的前后端分離的架構來寫的,項目大小不是問題。

VUE 是一個前端組件化工具,也可以使用 es6 的 import/export 語法:

clipboard.png

貌似需要 Babel 支持,所以需要 npm install 一堆東西

clipboard.png

需要配置 .babelrc,但是不需要做構建腳本的修改(用 vue-cli 初始化的項目)

2018年4月11日 10:56
編輯回答
伴謊

可以。

不使用模塊化和構建工具最簡單的方式是每個組件的定義及全局注冊寫一個 js 文件,然后在需要的頁面在引入 vue.js 之后用 script 標簽引入這個 js 文件即可。

2017年12月15日 22:29
編輯回答
終相守

當然可以,你試試不就知道了!一開始我也沒用前后端分離的方式,后來用了一個基于vue的組件庫 只能前后端分離了

2017年7月20日 12:05
編輯回答
耍太極

我覺得主要跟你的主管,產品,設計進行協(xié)調。我現(xiàn)在的公司,產品垃圾到無人有,然后設計也是死牛一條,很多時候做的東西能夠復用,偏要弄的花里花俏。一大堆不實用的東西。但是你又沒有辦法。只能按需求做事。。

2018年7月23日 19:47
編輯回答
朕略萌

肯定可以的啊

2017年8月25日 03:25