乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      vue-04

       印度阿三17 2019-10-14

      路由跳轉(zhuǎn)

      this.$router.push('/course');
      this.$router.push({name: course});
      this.$router.go(-1);
      this.$router.go(1);
      <router-link to="/course">課程頁</router-link>
      <router-link :to="{name: 'course'}">課程頁</router-link>

      路由傳參

      第一種

      router.js
      routes: [
          // ...
          {
              path: '/course/:id/detail',
              name: 'course-detail',
              component: CourseDetail
          },
      ]
      跳轉(zhuǎn).vue
      <template>
          <!-- 標(biāo)簽跳轉(zhuǎn) -->
          <router-link :to="`/course/${course.id}/detail`">{{ course.name }}</router-link>
      </template>
      <script>
          // ...
          goDetail() {
              // 邏輯跳轉(zhuǎn)
              this.$router.push(`/course/${this.course.id}/detail`);
          }
      </script>
      接收.vue
      created() {
          let id = this.$route.params.id;
      }

      第二種

      router.js
      routes: [
          // ...
          {
              path: '/course/detail',
              name: 'course-detail',
              component: CourseDetail
          },
      ]
      跳轉(zhuǎn).vue
      <template>
          <!-- 標(biāo)簽跳轉(zhuǎn) -->
          <router-link :to="{
                  name: 'course-detail',
                  query: {id: course.id}
              }">{{ course.name }}</router-link>
      </template>
      <script>
          // ...
          goDetail() {
              // 邏輯跳轉(zhuǎn)
              this.$router.push({
                  name: 'course-detail',
                  query: {
                      id: this.course.id
                  }
              });
          }
      </script>
      接收.vue
      created() {
          let id = this.$route.query.id;
      }

      可以完成跨組件傳參的四種方式

      // 1) localStorage:永久存儲數(shù)據(jù)
      // 2) sessionStorage:臨時存儲數(shù)據(jù)(刷新頁面數(shù)據(jù)不重置,關(guān)閉再重新開啟標(biāo)簽頁數(shù)據(jù)重置)
      // 3) cookie:臨時或永久存儲數(shù)據(jù)(由過期時間決定)
      // 4) vuex的倉庫(store.js):臨時存儲數(shù)據(jù)(刷新頁面數(shù)據(jù)重置)

      vuex倉庫插件

      store.js配置文件
      export default new Vuex.Store({
          state: {
              title: '默認(rèn)值'
          },
          mutations: {
              // mutations 為 state 中的屬性提供setter方法
              // setter方法名隨意,但是參數(shù)列表固定兩個:state, newValue
              setTitle(state, newValue) {
                  state.title = newValue;
              }
          },
          actions: {}
      })
      在任意組件中給倉庫變量賦值
      this.$store.state.title = 'newTitle'
      this.$store.commit('setTitle', 'newTitle')
      在任意組件中取倉庫變量的值
      console.log(this.$store.state.title)

      vue-cookie插件

      安裝
      >: cnpm install vue-cookies
      main.js 配置
      // 第一種
      import cookies from 'vue-cookies'   // 導(dǎo)入插件
      Vue.use(cookies);                   // 加載插件
      new Vue({
          // ...
          cookies,                        // 配置使用插件原型 $cookies
      }).$mount('#app');
      
      // 第二種
      import cookies from 'vue-cookies'   // 導(dǎo)入插件
      Vue.prototype.$cookies = cookies;   // 直接配置插件原型 $cookies
      使用
      // 增(改): key,value,exp(過期時間)
      // 1 = '1s' | '1m' | '1h' | '1d'
      this.$cookies.set('token', token, '1y');
      
      // 查:key
      this.token = this.$cookies.get('token');
      
      // 刪:key
      this.$cookies.remove('token');
      注:cookie一般都是用來存儲token的
      // 1) 什么是token:安全認(rèn)證的字符串
      // 2) 誰產(chǎn)生的:后臺產(chǎn)生
      // 3) 誰來存儲:后臺存儲(session表、文件、內(nèi)存緩存),前臺存儲(cookie)
      // 4) 如何使用:服務(wù)器先生成反饋給前臺(登陸認(rèn)證過程),前臺提交給后臺完成認(rèn)證(需要登錄后的請求)
      // 5) 前后臺分離項目:后臺生成token,返回給前臺 => 前臺自己存儲,發(fā)送攜帶token請求 => 后臺完成token校驗 => 后臺得到登陸用戶

      axios插件

      安裝
      >: cnpm install axios
      main.js配置
      import axios from 'axios'   // 導(dǎo)入插件
      Vue.prototype.$axios = axios;   // 直接配置插件原型 $axios
      使用
      this.axios({
          url: '請求接口',
          method: 'get|post請求',
          data: {post等提交的數(shù)據(jù)},
          params: {get提交的數(shù)據(jù)}
      }).then(請求成功的回調(diào)函數(shù)).catch(請求失敗的回調(diào)函數(shù))
      案例
      // get請求
      this.$axios({
          url: 'http://127.0.0.1:8000/test/ajax/',
          method: 'get',
          params: {
              username: this.username
          }
      }).then(function (response) {
          console.log(response)
      }).catch(function (error) {
          console.log(error)
      });
      
      // post請求
      this.$axios({
          url: 'http://127.0.0.1:8000/test/ajax/',
          method: 'post',
          data: {
              username: this.username
          }
      }).then(function (response) {
          console.log(response)
      }).catch(function (error) {
          console.log(error)
      });

      跨域問題(同源策略)

      // 后臺接收到前臺的請求,可以接收前臺數(shù)據(jù)與請求信息,發(fā)現(xiàn)請求的信息不是自身服務(wù)器發(fā)來的請求,拒絕響應(yīng)數(shù)據(jù),這種情況稱之為 - 跨域問題(同源策略 CORS)
      
      // 導(dǎo)致跨域情況有三種
      // 1) 端口不一致
      // 2) IP不一致
      // 3) 協(xié)議不一致
      
      // Django如何解決 - django-cors-headers模塊
      // 1) 安裝:pip3 install django-cors-headers
      // 2) 注冊:
      INSTALLED_APPS = [
          ...
          'corsheaders'
      ]
      // 3) 設(shè)置中間件:
      MIDDLEWARE = [
          ...
          'corsheaders.middleware.CorsMiddleware'
      ]
      // 4) 設(shè)置跨域:
      CORS_ORIGIN_ALLOW_ALL = True

      element-ui插件

      安裝
      >: cnpm i element-ui -S
      main.js配置
      import ElementUI from 'element-ui';
      import 'element-ui/lib/theme-chalk/index.css';
      Vue.use(ElementUI);
      使用
      依照官網(wǎng) https://element./#/zh-CN/component/installation api


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多