鍍金池/ 問答/HTML/ 關(guān)于微信小程序的問題

關(guān)于微信小程序的問題

我有一個是使用率很高的方法,比如

Page({
    data:{
        a: "hello life",
        b: function(){
            this.setData({
                a: "hello world"
            });
        }
    }
});

但是我現(xiàn)在想把他公用出去,該怎么辦?
1.我首先用到的是文檔中介紹的模塊化,把公用的內(nèi)容另存一個js,但是發(fā)現(xiàn)require過來的common.js里的內(nèi)容是不能直接放到wxml里用到,比如

var common = require("common.js");
/*在wxml中*/
<view>{{common.a}}</view>    //這樣是無效的,必須在Page里再定義一變量,并賦值給這個變量才行,但是這么做就顯得沒啥公用可言了。

2.其次,我發(fā)現(xiàn)還有個單獨定義成wxs文件,但是發(fā)現(xiàn)想修改自己的變量是修改不了的。例如

/*wxs中*/
module.exports = {
    a: "hello life",
    b: function(){
        a = "hello world";        //這里這么做也是無法完成修改
    }
}

所以想問問,這種使用率高,然后自身變量和函數(shù)會相互訪問并操作,同時肯定也得保證數(shù)據(jù)相互之間的綁定。該如何寫呢?

回答
編輯回答
默念

你這個問題叫模塊化開發(fā),具體在小程序中可以參考官方文檔:https://mp.weixin.qq.com/debu...
根據(jù)他們的文檔我們可以知道,對于要復用的JS可以采取2種方式進行開發(fā):
方式1:將公共方法定義在App()中,再通過全局函數(shù) getApp() 可以獲取全局的應(yīng)用實例及其內(nèi)部方法。
方式2:單獨定義一個JS文件,通過require的方法引入JS。

以上總體介紹了小程序的模塊化開發(fā),接下來針對你的問題回答:
1、你定義的common.js文件不能在wxml文件中引入,應(yīng)該在wxml文件對應(yīng)的js文件中引入common.js。建議不要在wxml中直接操作JS,而應(yīng)該通過對應(yīng)的JS中的data改變頁面的狀態(tài),wxml只負責頁面的呈現(xiàn)。補充:js的引入用require,而wxml中引入其他wxml要用import。
2、wxs(WeiXin Script)文件是小程序最近才引進的一套機制,它允許wxml和wxs混在一個頁面中開發(fā),估計是跟隨現(xiàn)在組件化開發(fā)的大潮流吧。wxs 與 javascript 是不同的語言,有自己的語法,并不和 javascript 一致。建議你先不要用wxs這東西,它是騰訊自己的一套類似JS的語法。

2018年6月26日 12:43