账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 2.5.2 delimiters 修改不起作用
    22
    0
    <template>
      <div class="qjapi-ctn">
        <p v-jsdan="fontColor">{{count}}</p>
        <button @click="addCount">Add</button>
        <p v-haha="hello">{{hello}}</p>
        <!--***********************delimiters****************--> 
        <p>${hello}</p>
        <!--***********************delimiters end****************--> 
        <!--Vue.extend-->
        <div id="author"></div>
        <!--Vue.set-->
        <ul>
          <li v-for="item in arr">{{item}}</li>
        </ul>
        <button @click="changeArr">change arr</button>
        <!--computed-->
        <label for="price">
          price:
          <input type="text" id="price" v-model="price">
        </label>
        <p>newPrice:{{newPrice}}</p>
        <dl>
          <dt>news list</dt>
          <dd v-for="item in sortNewsList">{{item.title}} {{item.date}}</dd>
        </dl>
        <hr>
        <!--watch-->
        <p>天气建议</p>
        <label for="temperature">
          <input type="number" id="temperature" v-model.number="temperature">
        </label>
        <p>{{showSuggestion}}</p>
      </div>
    </template>
    
    <script>
      import Vue from 'vue'
      var addLog = {
        updated() {
          console.log('数据发生变化,变化成' + this.count);
        },
        data(){
          return {
            hello: 'hello world!!!!!!!!!!!!',
            fontColor: 'green'
          }
        }
      };
      var extendsOptions = {
        created() {
          console.log('extend created!');
        },
        data(){
          return {
            testOption: 'extend test.'
          }
        }
      };
      export default {
        name: "qj-api",
        computed: {
          newPrice(){
            return `¥${this.price}元`
          },
          sortNewsList() {
            return this.newsList.sort((a, b)=>{
              console.log(new Date(b.date));
              return new Date(b.date) - new Date(a.date);
            });
          }
        },
        watch: {
          temperature(newVal, oldVal) {
            if (newVal < 10) {
              this.showSuggestion = this.suggestion[0];
            } else if (newVal >= 10 && newVal <= 20) {
              this.showSuggestion = this.suggestion[1];
            } else {
              this.showSuggestion = this.suggestion[2];
            }
          }
        },
        data() {
          return {
            count: 0,
            fontColor: 'red',
            arr: ['aaa', 'bbb', 'ccc'],
            price: 100,
            temperature: 0,
            suggestion: [
              '温度低于10摄氏度',
              '温度在10至20摄氏度',
              '温度高于30度'
            ],
            showSuggestion: '',
            newsList: [
              {title: '香港或就“装甲车被扣”事件追责 起诉涉事运输公司', date: '2017/3/10'},
              {title: '日本第二大准航母服役 外媒:针对中国潜艇', date: '2017/3/12'},
              {title: '中国北方将有明显雨雪降温天气 南方阴雨持续', date: '2017/3/13'},
              {title: '起底“最短命副市长”:不到40天落马,全家被查', date: '2017/3/23'},
            ]
          }
        },
        created(){
          // Vue.extend
          console.log('构造器 created');
          this.$nextTick(()=>{
            var authorExtend = Vue.extend({
              template: '<p><a :href="authorUrl">{{authorName}}</a></p>',
              data() {
                return {
                  authorUrl: 'http://www.baidu.com'
                }
              }
            });
            new authorExtend().$mount('#author');
          });
        },
        updated(){
          console.log('构造器里面的updated方法');
        },
        activated(){
    
        },
        deactivated(){
    
        },
        methods: {
          addCount() {
            this.count++;
          },
          changeArr() {
            this.arr[1] = "ddd";
            this.$set(this.arr, 1,'ddd');
          }
        },
        mixins:[addLog],
        extends: extendsOptions,
        delimiters:['$[',']'] //插值形式就变成了${}
      }
    </script>
    
    <style lang="scss" scoped>
    
    </style>
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 异类辉煌 普通会员 1楼

      在 Vue 2.5.2 及之后的版本中,Vue 初始化时提供了 delimiters 选项来自定义模板语法分隔符,但默认情况下,Vue 框架使用的是双大括号 {{ }}

      如果你想要修改 Vue 的 delimiters,在创建 Vue 实例时进行配置:

      javascript new Vue({ delimiters: ['[[', ']]'], // 自定义为 [[ ]] data: { message: 'Hello, World!' }, template: '<div>[[ message ]]</div>' }) 这样,你就可以在模板中使用新的分隔符 [[ ]] 来绑定数据了,例如:<div>[[ message ]]</div>

      请注意,全局修改 Vue 的默认分隔符可能会影响到所有基于 Vue 的组件。如果你只是想在某个单独组件中更改分隔符,可以考虑在该组件内部设置局部选项:

      javascript export default { delimiters: ['[[', ']]'], data() { return { message: 'Hello, World!' } }, template: '<div>[[ message ]]</div>' }

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部